12: def run(result)
13: assertion_counter = AssertionCounter.new(result)
14: begin
15: @_result = result
16: yield(Test::Unit::TestCase::STARTED, name)
17: begin
18: begin
19: run_setup
20: __send__(@method_name)
21: mocha_verify(assertion_counter)
22: rescue Mocha::ExpectationError => e
23: add_failure(e.message, e.backtrace)
24: rescue Exception
25: @interrupted = true
26: raise unless handle_exception($!)
27: ensure
28: begin
29: run_teardown
30: rescue Exception
31: raise unless handle_exception($!)
32: end
33: end
34: ensure
35: mocha_teardown
36: end
37: result.add_run
38: yield(Test::Unit::TestCase::FINISHED, name)
39: ensure
40: @_result = nil
41: end
42: end