railties/lib/rails/test_unit/testing.rake
# frozen_string_literal: true
require "minitest"
require "rails/test_unit/runner"
task default: :test
desc "Run all tests in test folder except system ones"
task :test do
Rails::TestUnit::Runner.run_from_rake("test", Array(ENV["TEST"]))
end
namespace :test do
task :prepare do
# Placeholder task for other Railtie and plugins to enhance.
# If used with Active Record, this task runs before the database schema is synchronized.
end
task run: %w[test]
desc "Reset the database and run `bin/rails test`"
task :db do
success = system({ "RAILS_ENV" => ENV.fetch("RAILS_ENV", "test") }, "rake", "db:test:prepare", "test")
success || exit(false)
end
[
*Rails::TestUnit::Runner::TEST_FOLDERS,
:all,
:generators,
:units,
:functionals,
:system,
].each do |name|
task name do
Rails::TestUnit::Runner.run_from_rake("test:#{name}")
end
end
end