【问题标题】:Display python unittest results in nice, tabular form [closed]以漂亮的表格形式显示python unittest结果[关闭]
【发布时间】:2013-06-14 07:14:46
【问题描述】:

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

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

【问题讨论】:

    标签: python unit-testing testing python-unittest test-reporting


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 源代码链接不再有效。你有更新的链接要分享吗?
    • 好的,我将它托管在 Gist 上,而我没有在 Github 上设置好的存储库
    【解决方案2】:

    看看Twisted's Trial

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

    它有以下内容:

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

      trial test_name.py

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

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

    • 它还包括一个测试库,源自 Python 的 unittest.TestCase。你可以通过继承twisted.trial.unittest.TestCase 来使用这个库。这提供了更多assertion methods

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

    【讨论】:

      【解决方案3】:

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

      • HTMLTestRunner 以表格形式生成易于使用的 HTML 测试报告。 Here 是一个示例报告。
      • nose-html-output nose 测试运行器的插件
      • unittest-xml-reporting - 基于 PyUnit 的测试运行器,具有类似 XML 报告的 JUnit
      • 带有--with-xunit 选项的nose 将生成易于阅读和转换的junit xml 样式报告

      另见:

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

      希望对您有所帮助。

      【讨论】:

      • 好吧,当然,您可以在服务器端安装任何这些 xml/html 生成工具并在远程终端 shell 上使用。但是,在这种情况下,您当然需要先下载报告才能在浏览器中查看它们。或者,您也可以使用基于文本的 Web 浏览器(如 lynx)直接在控制台中查看报告。
      • 这会使事情变得过于复杂。我认为在 shell 中做一个简单的表格就可以了。
      • 同意,然后考虑使用自定义跑步者或鼻子插件。我认为没有专门针对此特定问题的任何内容。
      • 谢谢。我将尝试创建自己的测试类。只是想确保我没有重新发明轮子。
      • 如果答案以“这不是您要问的内容”开头,您就知道它不值得阅读或发布
      猜你喜欢
      • 2013-04-21
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2017-12-21
      • 1970-01-01
      • 2021-04-14
      相关资源
      最近更新 更多