首页/开发/CI/CD 与发布速查/覆盖率阈值门禁
质量门禁与回滚51 条

覆盖率阈值门禁

为行覆盖、分支覆盖率设置通过线并接入流水线;阈值应基于当前基线渐进提高,关注增量与关键路径,而不是单看一个数字。

CI/CD 与发布速查开发更新于 2026-10-12
常见指标行覆盖率、分支覆盖率、函数覆盖率
设置方式项目整体阈值或增量代码阈值
数据来源JaCoCo、coverage.py、Istanbul/nyc 等报告
渐进策略基线之上逐步上调,例如每季度 +2%

pytest 覆盖率阈值

pytest 覆盖率阈值
- name: Tests with coverage
  run: pytest --cov=app --cov-fail-under=80

JaCoCo 阈值规则片段

JaCoCo 阈值规则片段
<rule>
  <element>BUNDLE</element>
  <limits>
    <limit><counter>LINE</counter><value>COVEREDRATIO</value><minimum>0.80</minimum></limit>
  </limits>
</rule>
覆盖率是过程指标:为数字补无断言的测试,反而增加维护成本。

易错点

  • 一次性把阈值拉到远期目标:历史缺口无法通过,被迫绕过流程
  • 只看总体覆盖率:核心模块未覆盖的路径被平均值掩盖

数据来源与参考

  • pytest-cov 文档(--cov-fail-under)
  • JaCoCo 文档《Coverage counters and rules》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌