diff options
-rw-r--r-- | activesupport/lib/active_support/testing/autorun.rb | 11 | ||||
-rw-r--r-- | railties/lib/rails/commands/test.rb | 5 | ||||
-rw-r--r-- | railties/lib/rails/test_unit/minitest_plugin.rb | 10 |
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 |