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

标签 python pytest code-coverage coverage.py test-coverage

我正在使用类似的东西

# .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

关于python - 使 pytest 仅在完整测试套件运行时才需要代码覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61880294/

相关文章:

python - Elasticsearch 7.0 : filter must_not query error

python - pytest - 如何使其递归搜索?

java - 任何覆盖工具都允许忽略 getters 、 setter 、 equals 和 hashcode 吗?

python - 如何在 Google App Engine webapp2 留言簿教程中制作 'permalink' 详细信息页面显示两个图像

python - 在 Python 中以恒定时间更新字典

python - iPython NoteBook 的 MathJax 符号帮助

python - pytest 获取当前测试文件的文件路径

python - 使用 Pytest 框架进行 Argparse 测试

rust - 为什么 kcov 计算 Rust 程序的代码覆盖统计数据不正确?

c - (a && b) 语句中有多少个分支?根据 gcov : 4