如何遍历Python单元测试运行器的所有成功测试结果?

Cir*_*四事件 3 python python-unittest

后:

import unittest 
loader = unittest.TestLoader()
tests = loader.discover('.')
testRunner = unittest.runner.TextTestRunner()
testResult = testRunner.run(tests)
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式获取列表失败名称和消息:

for t in testResult.failures:
    print t[0].id()
    print t[1]
Run Code Online (Sandbox Code Playgroud)

如何为成功做同样的事情?

我希望能够通过重写中的内容来做到这一点TextTestRunner。最简单的方法是什么?

在Python 2.7上测试。

Cir*_*四事件 5

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()
Run Code Online (Sandbox Code Playgroud)