使pytest仅在完整测试套件运行时要求代码覆盖

我正在使用类似

# .coveragerc
fail_under = 100

# pytest.ini
[pytest]
addopts = --cov=modname/ --cov-report=term-missing

这样做是为了让我的测试套件运行覆盖率,如果不是100%,则会失败。

这行得通,但是问题是,如果我只运行一部分测试,例如

pytest some/specific/test.py
然后

它抱怨覆盖率不是100%,因为一个测试文件当然不能覆盖整个代码库。有没有更好的方法来使pytest运行覆盖,但仅当运行完整的测试套件时才可以?

a65758872 回答:使pytest仅在完整测试套件运行时要求代码覆盖

您可以通过在命令中添加以下标志来临时覆盖.coveragerc

--cov-fail-under=x

其中x是失败的百分比(如果将其设置为0,则根据代码覆盖率,它永远不会失败)

因此,在您的情况下,您将运行:

pytest some/specific/test.py --cov-fail-under=x
本文链接:https://www.f2er.com/2324377.html

大家都在问