如何仅显示来自行为的失败测试?

Posted

技术标签:

【中文标题】如何仅显示来自行为的失败测试?【英文标题】:How to only show failing tests from behave? 【发布时间】:2017-10-13 17:48:12 【问题描述】:

我有一个 Python 3.4 项目,其中包含在 behave 框架(版本 1.2.5)中构建的测试。当我运行测试时,我得到了数百行输出,其中大部分描述了顺利通过的步骤。当场景失败时,我需要滚动浏览所有这些输出以查找失败(这很容易注意到,因为它是红色的,而通过的步骤是绿色的,但我仍然需要寻找它)。

有没有办法让behave 只显示失败场景的输出?理想情况下,我会得到所有失败场景的输出,以及通过/失败/跳过了多少功能/场景/步骤的总结。如果它将所有内容都打印出来但将所有失败都放在底部,我也会很满意。

我已经运行 behave --help 并查看了 this website,但没有找到任何相关内容。然而,我肯定不是第一个对此感到恼火的人,我想有一些方法可以做到这一点。感谢您的帮助!

编辑:--quiet 标志简化了输出,但不会删除它。例如,这个输出:

Scenario Outline: Blank key identification -- @1.3 blank checks # tests/features/tkg.feature:15 Given we have pages with the wrong checksum # tests/features/steps/tkg_tests.py:30 0.000s When we check if the key is blank # tests/features/steps/tkg_tests.py:50 0.000s Then it is not blank # tests/features/steps/tkg_tests.py:55 0.000s

当使用--quiet 标志运行时:

Scenario Outline: Blank key identification -- @1.3 blank checks Given we have pages with the wrong checksum # 0.000s When we check if the key is blank # 0.000s Then it is not blank # 0.000s

但它的行数仍然相同。

【问题讨论】:

--format progress 似乎没有显示该输出,但它也没有显示失败的测试。 --format progress2 显示失败测试的回溯(但不显示输出),--format progress3 也是如此。 是的,这就行了! --format 比我意识到的要强大得多。谢谢! 好的,我不确定你想要什么。我已将其发布为答案。无论如何,如果有办法将步骤描述与失败测试的回溯一起提供,那就太好了,但是,AFAIK,没有内置的格式化程序可以做到这一点。 【参考方案1】:

您可以将--format 选项与progressprogress2 格式化程序一起使用。

这不会显示未通过测试的输出(尽管它仍会显示文件名)。 progress2 选项显示失败测试的回溯。

【讨论】:

以上是关于如何仅显示来自行为的失败测试?的主要内容,如果未能解决你的问题,请参考以下文章

Mocha with Node:仅显示失败测试的日志记录

在 Jenkins 中显示单个测试结果的历史记录 - 附加插件或配置问题?

仅显示 Java 成功/失败指标的失败计数

如何快速调试 sCrypt 单元测试错误

在基于 Android 和 iOS 的智能手机上显示来自 EMBED HTML 标记的 PDF 文件失败

Selenium 不显示失败的数字行