Sha256: ba96ca708f3fb6e55c65bca99820e8b9998222c8fb5064dcb2d8f2c3976992e0

Contents?: true

Size: 1023 Bytes

Versions: 1

Compression:

Stored size: 1023 Bytes

Contents

require 'rspec/core/rake_task'

SPEC_SUITES = [
  { id: :unit, title: 'unit tests', pattern: 'spec/unit/**/*_spec.rb' },
  { id: :adapters, title: 'adapter tests', pattern: 'spec/adapter/**/*_spec.rb' },
  { id: :integration, title: 'integration tests', pattern: 'spec/integration/**/*_spec.rb' }
].freeze

namespace :spec do
  namespace :suite do
    SPEC_SUITES.each do |suite|
      desc "Run all specs in #{suite[:title]} spec suite"
      RSpec::Core::RakeTask.new(suite[:id]) do |t|
        t.pattern = suite[:pattern]
        t.verbose = false
        t.fail_on_error = false
      end
    end
    desc 'Run all spec suites'
    task :all do
      require 'English'
      failed = []
      SPEC_SUITES.each do |suite|
        p "Running spec suite #{suite[:id]} ..."
        Rake::Task["spec:suite:#{suite[:id]}"].execute
        failed << suite[:id] unless $CHILD_STATUS.success?
      end
      raise "Spec suite#{failed.length > 1 ? 's' : ''} '#{failed.join(', ')}' failed" unless failed.empty?
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nucleus-0.3.1 spec/test_suites.rake