Это особенность. Если вы хотите переопределить это, вам нужно создать подкласс TestCase
и / или TestSuite
классов и переопределить логику в методе run()
.
P.S .:
Я думаю, вы должны создать подкласс unittest.TestCase
и переопределить метод run()
в вашем классе:
def run(self, result=None):
if result is None: result = self.defaultTestResult()
result.startTest(self)
testMethod = getattr(self, self._testMethodName)
try:
try:
self.setUp()
except KeyboardInterrupt:
raise
except:
result.addError(self, self._exc_info())
return
ok = False
try:
testMethod()
ok = True
except self.failureException:
result.addFailure(self, self._exc_info())
result.stop()
except KeyboardInterrupt:
raise
except:
result.addError(self, self._exc_info())
result.stop()
try:
self.tearDown()
except KeyboardInterrupt:
raise
except:
result.addError(self, self._exc_info())
ok = False
if ok: result.addSuccess(self)
finally:
result.stopTest(self)
(я добавил два result.stop()
вызова к определению по умолчанию run
).
Тогда вам придется изменить все ваши тестовые сценарии, чтобы они стали подклассами этого нового класса вместо unittest.TestCase
.
ПРЕДУПРЕЖДЕНИЕ : я не проверял этот код. :)