diff options
Diffstat (limited to 'railties/lib/rails/test_unit/testing.rake')
-rw-r--r-- | railties/lib/rails/test_unit/testing.rake | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/railties/lib/rails/test_unit/testing.rake b/railties/lib/rails/test_unit/testing.rake new file mode 100644 index 0000000000..ecc458b21e --- /dev/null +++ b/railties/lib/rails/test_unit/testing.rake @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +gem "minitest" +require "minitest" +require "rails/test_unit/runner" + +task default: :test + +desc "Runs all tests in test folder except system ones" +task :test do + $: << "test" + + if ENV.key?("TEST") + Rails::TestUnit::Runner.rake_run([ENV["TEST"]]) + else + Rails::TestUnit::Runner.rake_run + end +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 "Run tests quickly, but also reset db" + task db: %w[db:test:prepare test] + + ["models", "helpers", "controllers", "mailers", "integration", "jobs", "mailboxes"].each do |name| + task name => "test:prepare" do + $: << "test" + Rails::TestUnit::Runner.rake_run(["test/#{name}"]) + end + end + + task generators: "test:prepare" do + $: << "test" + Rails::TestUnit::Runner.rake_run(["test/lib/generators"]) + end + + task units: "test:prepare" do + $: << "test" + Rails::TestUnit::Runner.rake_run(["test/models", "test/helpers", "test/unit"]) + end + + task functionals: "test:prepare" do + $: << "test" + Rails::TestUnit::Runner.rake_run(["test/controllers", "test/mailers", "test/functional"]) + end + + desc "Run system tests only" + task system: "test:prepare" do + $: << "test" + Rails::TestUnit::Runner.rake_run(["test/system"]) + end +end |