我正在编写一个Pythonic工具,用于验证某个系统的正确性。每个验证都写为Python unittest
,报告如下:
test_exclude_list_not_empty (__main__.TestRepoLists)
Assert the the exclude list is not empty ... ok
test_include_list_not_empty (__main__.TestRepoLists)
Assert the the include list is not empty ... ok
test_repo_list_not_empty (__main__.TestRepoLists)
Assert the the repo list is not empty ... ok
在我看来,这种格式很难阅读,特别是对于非Python主义者。是否有任何报告生成器可以以漂亮的表格形式生成报告,例如:
+----------------------------------------------------------------+-----------+
| Test | Status |
+----------------------------------------------------------------+-----------+
| Assert the the exclude list is not empty | OK |
| Assert the the include list is not empty | OK |
| Assert the the repo list is not empty | OK |
| All the items in the include list should be in the repo list | OK |
+----------------------------------------------------------------+-----------+
澄清测试套件在远程终端上运行,所以我更喜欢命令行报告工具。
答案 0 :(得分:29)
这不完全是您所要求的,但有几种方法可以在那里获得可读的测试输出:
--with-xunit
选项的鼻子将生成易于阅读和转换的junit xml样式报告另见:
如果您想在控制台中以表格形式查看测试结果,我认为最好根据unittest.TestProgram
编写own nose plugin或测试运行器,因为它是在HTMLTestRunner
希望有所帮助。
答案 1 :(得分:11)
我想将我的信息添加为对alecxe答案的评论,但我没有足够的声誉。
如果有人仍然在寻找答案,我会将HTMLTestRunner分成一个简单的TestRunner,它有一个表格,彩色,终端友好的输出。 这是其输出的一个示例:
源代码位于https://gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067
我将很快从头开始重写它,但保留输出格式。
答案 2 :(得分:4)
默认情况下,它使用TreeReporter
测试运行器,如下所示:
它具有以下内容:
这是一个命令行报告,只需运行:
trial test_name.py
彩色输出:红色表示失败,绿色表示成功
报告使用树状结构。它显示它们所属的TestCases下的测试,允许您快速遍历结果以查找特定测试。 (虽然它提供了几个reports)。
它还包含一个源自Python unittest.TestCase
的测试库。您可以通过继承twisted.trial.unittest.TestCase
来使用此库。这提供了更多assertion methods。
它包括为测试生成语句覆盖率的选项。