你好,我在“test.py”下有一个像下面这样的测试模块:
class TestBasic(unittest.TestCase):
def setUp(self):
# set up in here
class TestA(TestBasic):
def test_one(self):
self.assertEqual(1,1)
def test_two(self):
self.assertEqual(2,1)
if __name__ == "__main__":
unittest.main()
这很好用,但我需要一种方法来打印通过的测试,例如我可以将输出打印到控制台:
test_one: PASSED
test_two: FAILED
现在转折点,我可以在 self.assertEqual() 之后添加一个打印语句,这将是一个通过的测试,我可以打印它,但我需要从不同的模块运行测试,比方说“test_reporter.py"我有这样的东西:
import test
suite = unittest.TestLoader().loadTestsFromModule(test)
results = unittest.TextTestRunner(verbosity=0).run(suite)
在这一点上,结果是我构建报告的时候。
欢迎大家提出建议
谢谢!!
最佳答案
赞Corey's comment提到,如果你设置 verbosity=2
unittest 将打印每个测试运行的结果。
results = unittest.TextTestRunner(verbosity=2).run(suite)
如果你想要更多的灵 active ——你可能会因为你正在创建套件和使用测试运行器——我建议你看一下 Twisted Trial .它扩展了 Python 的 unittest
模块并提供了更多的断言和报告功能。
编写测试将完全相同(除了子类化 twisted.trial.unittest.TestCase 与 python 的单元测试之外),因此您的工作流程不会改变。您仍然可以使用您的 TestLoader
,但您可以选择更多的 TestReporter http://twistedmatrix.com/documents/11.1.0/api/twisted.trial.reporter.html .
例如,默认的 TestReporter 是 TreeReporter
,它返回以下输出:
关于Python unittest 报告通过测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16679660/