我正在使用类似的东西
# .coveragerc
fail_under = 100
和
# pytest.ini
[pytest]
addopts = --cov=modname/ --cov-report=term-missing
为了使我的测试套件运行覆盖率,如果不是100%,则失败。
这可行,但是问题是,如果我仅运行部分测试,例如
pytest some/specific/test.py
然后,它抱怨覆盖率不是100%,因为一个测试文件当然不能覆盖整个代码库。有没有更好的方法来使pytest运行覆盖,但仅当运行完整的测试套件时才可以?
您可以通过在命令中添加以下标志来临时覆盖.coveragerc
:
--cov-fail-under=x
其中x是失败的百分比(如果将其设置为0,则根据代码覆盖率,它永远不会失败)
因此,在您的情况下,您将运行:
pytest some/specific/test.py --cov-fail-under=x