rails/activejob/Rakefile
Yasuo Honda cb22eb2b36 Remove QueAdapter from Active Job
Que and Rails (Active Job QueAdapter) have applied changes each other
to support Ruby 3 keyword arguments and options provided as top level keywords, etc
via these commits:

https://github.com/rails/rails/pull/44734
https://github.com/rails/rails/pull/44248
d9244b9074 via https://github.com/que-rb/que/pull/319

Finally, we've found it is quite difficult to maintain them.
Going forward Active Job Que adapter can be included in the future version of que gem itself.
Refer to https://github.com/rails/rails/issues/45899 the background for this change.

Active Job Que adapter can be included in the future version of que gem itself.
2022-09-12 22:31:10 +09:00

84 lines
2.2 KiB
Ruby

# frozen_string_literal: true
require "rake/testtask"
ACTIVEJOB_ADAPTERS = %w(async inline delayed_job queue_classic resque sidekiq sneakers sucker_punch backburner test)
ACTIVEJOB_ADAPTERS.delete("queue_classic") if defined?(JRUBY_VERSION)
task default: :test
task test: "test:default"
task :package
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 - ["test"]).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["AJ_ADAPTER"] = 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.warning = true
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
namespace :isolated do
task adapter => "test:env:#{adapter}" do
Dir.glob("#{__dir__}/test/cases/**/*_test.rb").all? do |file|
sh(Gem.ruby, "-w", "-I#{__dir__}/lib", "-I#{__dir__}/test", file)
end || 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.warning = true
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
end
end
end
def run_without_aborting(tasks)
errors = []
tasks.each do |task|
puts "\n\n--- rake #{task}\n"
Rake::Task[task].invoke
rescue Exception
puts "\n^^^ +++"
errors << task
end
if errors.any?
puts "\n\n+++ Summary\n"
abort "Errors running #{errors.join(', ')}"
end
end