1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activejob/Rakefile
Robin Dupret 1fac7b79f3 Follow up to #16613
Since we want this flag to be enabled anytime we are running the tests
under JRuby, let's enable this at the Rakefile level so people get the
performance boost on their local checkout.

Moreover, we avoid having to update this particular line anytime the
option changes on the JRuby side.

The only drawback is that we have to define it in every Rakefile but
there's no big deal, this is already the case for other options.
2014-09-28 12:04:06 +02:00

88 lines
2.3 KiB
Ruby

require 'rake/testtask'
require 'rubygems/package_task'
ACTIVEJOB_ADAPTERS = %w(inline delayed_job qu que queue_classic resque sidekiq sneakers sucker_punch backburner)
ACTIVEJOB_ADAPTERS -= %w(queue_classic) if defined?(JRUBY_VERSION)
task default: :test
task test: 'test:default'
namespace :test do
desc 'Run all adapter tests'
task :default do
run_without_aborting ACTIVEJOB_ADAPTERS.map { |a| "test:#{a}" }
end
desc 'Run all adapter tests in isolation'
task :isolated do
run_without_aborting ACTIVEJOB_ADAPTERS.map { |a| "test:isolated:#{a}" }
end
desc 'Run integration tests for all adapters'
task :integration do
run_without_aborting ACTIVEJOB_ADAPTERS.map { |a| "test:integration:#{a}" }
end
task 'env:integration' do
ENV['AJ_INTEGRATION_TESTS'] = "1"
end
ACTIVEJOB_ADAPTERS.each do |adapter|
task("env:#{adapter}") { ENV['AJADAPTER'] = adapter }
Rake::TestTask.new(adapter => "test:env:#{adapter}") do |t|
t.description = "Run adapter tests for #{adapter}"
t.libs << 'test'
t.test_files = FileList['test/cases/**/*_test.rb']
t.verbose = true
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
namespace :isolated do
task adapter => "test:env:#{adapter}" do
dir = File.dirname(__FILE__)
Dir.glob("#{dir}/test/cases/**/*_test.rb").all? do |file|
sh(Gem.ruby, '-w', "-I#{dir}/lib", "-I#{dir}/test", file)
end or raise 'Failures'
end
end
namespace :integration do
Rake::TestTask.new(adapter => ["test:env:#{adapter}", 'test:env:integration']) do |t|
t.description = "Run integration tests for #{adapter}"
t.libs << 'test'
t.test_files = FileList['test/integration/**/*_test.rb']
t.verbose = true
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
end
end
end
def run_without_aborting(tasks)
errors = []
tasks.each do |task|
begin
Rake::Task[task].invoke
rescue Exception
errors << task
end
end
abort "Errors running #{errors.join(', ')}" if errors.any?
end
spec = eval(File.read('activejob.gemspec'))
Gem::PackageTask.new(spec) do |p|
p.gem_spec = spec
end
desc 'Release to rubygems'
task release: :package do
require 'rake/gemcutter'
Rake::Gemcutter::Tasks.new(spec).define
Rake::Task['gem:push'].invoke
end