Pep*_*zza 1 python unit-testing python-unittest
您好,我在"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()
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但我需要一种方法来打印传递的测试,例如我可以将输出打印到控制台:
test_one: PASSED
test_two: FAILED
Run Code Online (Sandbox Code Playgroud)
现在扭曲,我可以在self.assertEqual()之后添加一个print语句,这将是一个通过的测试,我可以打印它,但我需要从另一个模块运行测试,让我们说"test_reporter.py" "我有这样的地方:
import test
suite = unittest.TestLoader().loadTestsFromModule(test)
results = unittest.TextTestRunner(verbosity=0).run(suite)
Run Code Online (Sandbox Code Playgroud)
此时结果是我构建报告的时候.
所以欢迎任何建议
谢谢 !!
与Corey的评论一样,如果设置verbosity=2unittest将打印每次测试运行的结果.
results = unittest.TextTestRunner(verbosity=2).run(suite)
Run Code Online (Sandbox Code Playgroud)
如果你想要更多的灵活性 - 而且你可能因为你正在创建套件并使用测试跑步者 - 我建议你看一下Twisted Trial.它扩展了Python的unittest模块,并提供了一些断言和报告功能.
编写测试将完全相同(除了子类化twisted.trial.unittest.TestCase与python的unittest),因此您的工作流程不会改变.你仍然可以使用你的,TestLoader但你可以选择更多的TestReporters http://twistedmatrix.com/documents/11.1.0/api/twisted.trial.reporter.html.
例如,默认的TestReporter TreeReporter将返回以下输出:

| 归档时间: |
|
| 查看次数: |
2345 次 |
| 最近记录: |