aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activesupport/lib/active_support/testing/autorun.rb11
-rw-r--r--railties/lib/rails/commands/test.rb5
-rw-r--r--railties/lib/rails/test_unit/minitest_plugin.rb10
3 files changed, 13 insertions, 13 deletions
diff --git a/activesupport/lib/active_support/testing/autorun.rb b/activesupport/lib/active_support/testing/autorun.rb
index 898ef209da..2e7b7246aa 100644
--- a/activesupport/lib/active_support/testing/autorun.rb
+++ b/activesupport/lib/active_support/testing/autorun.rb
@@ -2,11 +2,8 @@ gem "minitest"
require "minitest"
-if Minitest.respond_to?(:run_with_rails_extension)
- unless Minitest.run_with_rails_extension
- Minitest.run_with_autorun = true
- Minitest.autorun
- end
-else
- Minitest.autorun
+if Minitest.respond_to?(:run_with_rails_extension) && !Minitest.run_with_rails_extension
+ Minitest.run_with_autorun = true
end
+
+Minitest.autorun
diff --git a/railties/lib/rails/commands/test.rb b/railties/lib/rails/commands/test.rb
index 0ce2dd19b7..56d1021fab 100644
--- a/railties/lib/rails/commands/test.rb
+++ b/railties/lib/rails/commands/test.rb
@@ -1,8 +1,11 @@
require "rails/test_unit/minitest_plugin"
-require "active_support/testing/autorun"
if defined?(ENGINE_ROOT)
$LOAD_PATH << File.expand_path("test", ENGINE_ROOT)
else
$LOAD_PATH << File.expand_path("../../test", APP_PATH)
end
+
+Minitest.run_via[:rails] = true
+
+require "active_support/testing/autorun"
diff --git a/railties/lib/rails/test_unit/minitest_plugin.rb b/railties/lib/rails/test_unit/minitest_plugin.rb
index e15c6b3a38..0544847293 100644
--- a/railties/lib/rails/test_unit/minitest_plugin.rb
+++ b/railties/lib/rails/test_unit/minitest_plugin.rb
@@ -69,11 +69,12 @@ module Minitest
# Owes great inspiration to test runner trailblazers like RSpec,
# minitest-reporters, maxitest and others.
def self.plugin_rails_init(options)
- self.run_with_rails_extension = true
-
ENV["RAILS_ENV"] = options[:environment] || "test"
- ::Rails::TestRequirer.require_files(options[:patterns]) unless run_with_autorun
+ # If run via `ruby` we've been passed the files to run directly.
+ unless run_via[:ruby]
+ ::Rails::TestRequirer.require_files(options[:patterns])
+ end
unless options[:full_backtrace] || ENV["BACKTRACE"]
# Plugin can run without Rails loaded, check before filtering.
@@ -86,8 +87,7 @@ module Minitest
reporter << ::Rails::TestUnitReporter.new(options[:io], options)
end
- mattr_accessor(:run_with_autorun) { false }
- mattr_accessor(:run_with_rails_extension) { false }
+ mattr_accessor(:run_via) { Hash.new }
end
# Put Rails as the first plugin minitest initializes so other plugins