14: def run runner
15: trap 'INFO' do
16: time = runner.start_time ? Time.now - runner.start_time : 0
17: warn "%s#%s %.2fs" % [self.class, self.__name__, time]
18: runner.status $stderr
19: end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
20:
21: assertion_counter = AssertionCounter.new(self)
22: result = ""
23: begin
24: begin
25: @passed = nil
26: self.setup
27: self.run_setup_hooks
28: self.__send__ self.__name__
29: mocha_verify(assertion_counter)
30: result = "." unless io?
31: @passed = true
32: rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
33: raise
34: rescue Exception => e
35: @passed = false
36: result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
37: ensure
38: begin
39: self.run_teardown_hooks
40: self.teardown
41: rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
42: raise
43: rescue Exception => e
44: result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
45: end
46: trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
47: end
48: ensure
49: mocha_teardown
50: end
51: result
52: end