之后:
import unittest
loader = unittest.TestLoader()
tests = loader.discover('.')
testRunner = unittest.runner.TextTestRunner()
testResult = testRunner.run(tests)
我可以通过以下方式获取失败名称和消息列表:
for t in testResult.failures:
print t[0].id()
print t[1]
如何为成功做同样的事情?
我希望能够通过覆盖 TextTestRunner
中的某些内容来实现。什么是最简单的方法?
在 Python 2.7 上测试。
最佳答案
elethan 让我走上了正确的方向:https://stackoverflow.com/a/40613695/895245
这是我在使用 TextTestRunner(resultclass=
并添加一个不错的构造函数后得到的:
import unittest
from unittest.runner import TextTestResult
class TextTestResultWithSuccesses(TextTestResult):
def __init__(self, *args, **kwargs):
super(TextTestResultWithSuccesses, self).__init__(*args, **kwargs)
self.successes = []
def addSuccess(self, test):
super(TextTestResultWithSuccesses, self).addSuccess(test)
self.successes.append(test)
loader = unittest.TestLoader()
tests = loader.discover('.')
testRunner = unittest.runner.TextTestRunner(resultclass=TextTestResultWithSuccesses)
testResult = testRunner.run(tests)
for t in testResult.failures:
print t[0].id()
print t[1]
print
for t in testResult.errors:
print t[0].id()
print t[1]
print
for t in testResult.successes:
print t.id()
关于python - 如何遍历 Python unittest runner 的所有成功测试结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40613177/