1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
require 'mocha/integration/assertion_counter'
require 'mocha/integration/monkey_patcher'
require 'mocha/integration/mini_test/exception_translation'
module Mocha
module Integration
module MiniTest
module Version2110To2111
def self.applicable_to?(mini_test_version)
Gem::Requirement.new('>= 2.11.0', '<= 2.11.1').satisfied_by?(mini_test_version)
end
def self.description
"monkey patch for MiniTest gem >= v2.11.0 <= v2.11.1"
end
def self.included(mod)
MonkeyPatcher.apply(mod, RunMethodPatch)
end
module RunMethodPatch
def run runner
trap 'INFO' do
time = runner.start_time ? Time.now - runner.start_time : 0
warn "%s#%s %.2fs" % [self.class, self.__name__, time]
runner.status $stderr
end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
assertion_counter = AssertionCounter.new(self)
result = ""
begin
begin
@passed = nil
self.before_setup
self.setup
self.after_setup
self.run_test self.__name__
mocha_verify(assertion_counter)
result = "." unless io?
@passed = true
rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
raise
rescue Exception => e
@passed = false
result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
ensure
%w{ before_teardown teardown after_teardown }.each do |hook|
begin
self.send hook
rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
raise
rescue Exception => e
result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
end
end
trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
end
ensure
mocha_teardown
end
result
end
end
end
end
end
end
|