aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/test_unit/testing.rake
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/test_unit/testing.rake')
-rw-r--r--railties/lib/rails/test_unit/testing.rake58
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