'Run C{setUp}, a test method, test cleanups, and C{tearDown}.
@param result: The TestResult instance to which to report results.'

def _runFixturesAndTest(self, result):

    suppress = self._getSuppress()
    try:
        if self._run(suppress, None, self.setUp, result):
            return
        todo = self.getTodo()
        method = getattr(self, self._testMethodName)
        if self._run(suppress, todo, method, result):
            return
    finally:
        self._runCleanups(result)
    if todo:
        result.addUnexpectedSuccess(self, todo)
    if self._run(suppress, None, self.tearDown, result):
        return
    passed = True
    for error in self._observer.getErrors():
        result.addError(self, error)
        passed = False
    self._observer.flushErrors()
    self._removeObserver()
    if (passed and (not todo)):
        result.addSuccess(self)
