测试
测试覆盖率阈值
必须被测试覆盖的代码最低百分比,在CI/CD管道中强制执行以确保新代码不会降低整体测试覆盖率。
定义
覆盖率阈值在测试工具(Jest、Istanbul、pytest-cov)中配置,并在CI中强制执行。常见阈值:关键业务逻辑80%,一般代码60-70%。类型包括:行覆盖、分支覆盖(if/else两个路径)和函数覆盖。团队可以为关键代码设置全局阈值和按文件阈值。覆盖率门禁防止PR在覆盖率低于阈值时被合并。
为什么重要
没有强制的阈值,当开发人员在截止日期压力下跳过测试时,测试覆盖率会随时间侵蚀。研究表明,覆盖率>80%的代码库生产环境bug减少50%。覆盖率阈值是对质量的承诺,成为开发文化的一部分。
示例
一个项目有85%的测试覆盖率,阈值为80%。开发者提交一个PR添加200行未测试的代码,覆盖率降至78%。CI的覆盖率检查失败,要求开发者在合并前添加测试。
相关术语
test coverage thresholdcoverage gateminimum coveragecoverage requirementcode coverage percentage