61

我使用skipIf()fromunittest在某些情况下跳过测试。

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

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

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

4

2 回答 2

87

当你运行 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: //doc.pytest.org/en/latest/skipping.html

于 2012-11-21T15:05:24.270 回答
17

简短的回答:

pytest -rs

这将显示跳过测试的额外信息。

详细解答:

为了补充@ToddWilson 的回答,添加了以下字符:pP( 2.9.0 )、a( 4.1.0 ) 和A( 4.5.0 )。默认情况下不显示有关已跳过和 xfailed 测试的详细信息,以避免使输出混乱。您可以将-r标志与以下字符一起使用:

  • ( f) 生病了
  • ( E)错误
  • ( s)跳过
  • ( x) 失败
  • ( X)通过
  • ( p) 评估
  • ( P) 评估输出
  • ( a)ll 除了通过 (p/P)
  • ( A)ll。

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

于 2020-07-07T22:37:42.617 回答