mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
cb22eb2b36
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.
83 lines
2.2 KiB
Ruby
83 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
|