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

问题描述 投票:3回答:1

我正在使用类似的东西

# .coveragerc
fail_under = 100

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

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

这可行,但是问题是,如果我仅运行部分测试,例如

pytest some/specific/test.py

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

python pytest code-coverage coverage.py test-coverage
1个回答
0
投票

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

--cov-fail-under=x

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

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

pytest some/specific/test.py --cov-fail-under=x
© www.soinside.com 2019 - 2024. All rights reserved.