如何用Pytest同时测试C0与C1覆盖率并设置不同达标阈值
解决方案
1. 配置分类型覆盖率阈值
修改pyproject.toml文件,在coverage报告配置段中分别指定语句覆盖率(C0)和分支覆盖率(C1)的达标阈值:
[tool.coverage.report] # C0(语句)覆盖率阈值 fail_under = 95 # C1(分支)覆盖率阈值 branch_fail_under = 95
2. 单次执行测试并同步收集两种覆盖率
仅需执行一次命令,即可同时收集语句和分支覆盖率数据,并自动校验各自阈值:
pytest --cov --cov-branch
执行效果
命令执行后,coverage会同时输出两种覆盖率的详细结果,并分别检查是否达标:
- 若两种覆盖率均满足阈值要求,测试正常通过;
- 任意一种未达标时,测试直接失败,并明确提示未达标的覆盖率类型及具体数值。
该方案既解决了重复执行测试导致的耗时翻倍问题,也实现了为两种覆盖率设置独立阈值的需求。
内容的提问来源于stack exchange,提问作者Kins
相关产品推荐
相关产品推荐

