目标
覆盖率应针对变更代码而非全局绝对目标。本工作流计算仅限变更行的覆盖率,要求其高于阈值而不要求全局百分比,允许对生成或琐碎代码做有理由的排除,同时监控全局覆盖率趋势以防整体下滑。
步骤要点
- 计算仅限变更行的覆盖率。
- 按增量阈值设门禁而非全局百分比。
- 允许有理由的排除并注明。
- 监控全局覆盖率趋势防止下滑。
# diff coverage on changed lines only
diff-cover coverage.xml --compare-branch=origin/main --fail-under=80
验证
按顺序执行上述步骤后,逐项确认每个步骤的预期状态均已满足;只有全部预期状态成立,才认为本流程完成。若某一步未达到预期状态,应先按排错提示排查,不要跳过继续,以免掩盖问题。
排错提示
- 全局门禁会因无关遗留债而阻断。
- 未注明的排除会掩盖缺口。
- 忽略全局趋势会让覆盖下滑。
适用边界
- 需要支持 diff 的覆盖工具。
- 排除需可评审。