如何在使用py.test时显示为什么跳过某些测试?

时间:2012-11-21 14:57:29

标签: python unit-testing pytest

我在skipIf()使用unittest来跳过某些条件下的测试。

@unittest.skipIf(condition), "this is why I skipped them!")

如何告诉py.test显示跳过条件?

我知道对于unittest,我需要启用详细模式(-v),但添加到py.test的相同参数会增加详细程度仍然不会显示跳过原因。

2 个答案:

答案 0 :(得分:52)

运行py.test时,可以传递-rsx来报告跳过的测试。

来自py.test --help

-r chars            show extra test summary info as specified by chars
                    (f)ailed, (E)error, (s)skipped, (x)failed, (X)passed.

另请参阅有关跳过的文档的这一部分:http://pytest.org/latest/skipping.html

答案 1 :(得分:6)

简短答案:

pytest -rs

这将显示跳过的测试的更多信息。

详细答案:

为补充@ToddWilson的答案,添加了以下字符:pP2.9.0),a4.1.0)和{{ 1}}(4.5.0)。默认情况下,不会显示有关跳过和xfailed测试的详细信息,以避免混乱输出。您可以在以下字符中使用-r标志:

  • ({A)失败
  • ({f)误报
  • ({{1)}被保留
  • ({E)失败
  • s)通过了
  • x)已确定
  • X)伴随输出
  • p)除通过(p / P)以外
  • ({P)ll。

默认情况下启用警告,默认值为a