20: def run runner
21: assertion_counter = AssertionCounter.new(self)
22: result = '.'
23: begin
24: begin
25: @passed = nil
26: self.setup
27: self.__send__ self.name
28: mocha_verify(assertion_counter)
29: @passed = true
30: rescue Exception => e
31: @passed = false
32: result = runner.puke(self.class, self.name, e)
33: ensure
34: begin
35: self.teardown
36: rescue Exception => e
37: result = runner.puke(self.class, self.name, e)
38: end
39: end
40: ensure
41: mocha_teardown
42: end
43: result
44: end