diff --git a/Library/Homebrew/cmd/test.rb b/Library/Homebrew/cmd/test.rb index d8f1c5cee2..7b6ade1050 100644 --- a/Library/Homebrew/cmd/test.rb +++ b/Library/Homebrew/cmd/test.rb @@ -2,16 +2,23 @@ require 'extend/ENV' require 'hardware' require 'keg' require 'timeout' -require 'test/unit/assertions' module Homebrew extend self TEST_TIMEOUT_SECONDS = 5*60 - if Object.const_defined?(:Minitest) - FailedAssertion = Minitest::Assertion - elsif Object.const_defined?(:MiniTest) - FailedAssertion = MiniTest::Assertion + if defined?(Gem) + begin + gem "minitest", "< 5.0.0" + rescue Gem::LoadError + require "test/unit/assertions" + FailedAssertion = Test::Unit::AssertionFailedError + else + require "minitest/unit" + require "test/unit/assertions" + FailedAssertion = MiniTest::Assertion + end else + require "test/unit/assertions" FailedAssertion = Test::Unit::AssertionFailedError end @@ -35,6 +42,9 @@ module Homebrew extend self end puts "Testing #{f.name}" + + f.extend(Test::Unit::Assertions) + begin # tests can also return false to indicate failure Timeout::timeout TEST_TIMEOUT_SECONDS do diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 9c5d6ce2d2..11e1eecb7e 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -491,8 +491,6 @@ class Formula end def test - require 'test/unit/assertions' - extend(Test::Unit::Assertions) # Adding the used options allows us to use `build.with?` inside of tests tab = Tab.for_name(name) tab.used_options.each { |opt| build.args << opt unless build.has_opposite_of? opt }