28

我正在编写一个 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       |
+----------------------------------------------------------------+-----------+

澄清测试套件在远程终端上运行,所以我更喜欢命令行报告工具。

4

3 回答 3

31

这并不完全是您要问的,但是有几个选项可以在那里获得可读的测试输出:

另见:

如果您想在控制台中以表格形式查看测试结果,我认为一个好主意是编写自己的鼻子插件或测试运行器,unittest.TestProgram就像在HTMLTestRunner中所做的那样。

希望有帮助。

于 2013-06-18T07:25:34.340 回答
10

我想将我的信息作为评论添加到 alecxe 的答案中,但我没有足够的声誉。

如果有人仍在寻找答案,我将 HTMLTestRunner 分叉为一个简单的 TestRunner,它具有表格、彩色、终端友好的输出。这是其输出的示例:

例子

源代码位于https://gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067

我将很快从头开始重写它,但保留输出格式。

于 2015-07-28T01:06:48.997 回答
3

看看Twisted 的审判

默认情况下,它使用TreeReporter测试运行器,如下所示:

试验报告

它具有以下内容:

  • 这是一个命令行报告,只需运行:

    trial test_name.py

  • 彩色输出:红色表示失败,绿色表示成功

  • 该报告使用树状结构。它在它们所属的 TestCases 下显示测试,使您可以快速遍历结果以找到特定的测试。(尽管它提供了更多报告)。

  • 它还包括一个测试库,源自 Python 的unittest.TestCase. 您可以通过子类化来使用这个库 twisted.trial.unittest.TestCase。这提供了更多的断言方法

  • 它包括为您的测试生成语句覆盖率的选项。

于 2013-06-18T14:42:09.643 回答