如果它在覆盖范围内运行,是否可以让py.test跳过测试?

时间:2014-09-14 19:31:26

标签: python pytest

我在我们的测试套件中添加了一些性能冒烟测试,并且在运行带覆盖的py.test时,它们都失败了。这并不是非常令人惊讶,也不是表现出来的问题(覆盖范围内的时间与任何真实情况无关......)

如何标记(即pytest.mark.skipif(..))这些测试,以便在报道运行期间自动跳过这些测试?

我在开发过程中使用PyCharm是否相关。

1 个答案:

答案 0 :(得分:1)

使用pytest config对象应该是非常可行的。请参阅Skip and xfail上的最后一个示例:

@pytest.mark.skipif(not pytest.config.getvalue("db"),
                    reason="--db was not specified")
def test_function(...):
    pass

我想你想要的只是

@pytest.mark.skipif(pytest.config.getvalue("--cov"),
                    reason="--cov not compatible with smoke tests")

ETA: cov的目标实际上是cov_source,这就是为什么它无法识别cov。看来--cov似乎比较安全的赌注,因为它匹配您实际输入的选项,并且不需要您知道代码内部。)