目标
覆盖率只测量不强制,导致发布一轮比一轮低。本配方在测试运行器中开启覆盖率并按行、函数、分支分别设置阈值,低于任一阈值即非零退出、阻断 CI;同时提醒覆盖率衡量执行而非正确性,关键模块应配合变异测试。
步骤要点
- 开启覆盖率并按指标设置阈值。
- 运行覆盖率达到门禁即失败。
- 对遗留代码按目录逐步收紧阈值。
- 对关键模块配合变异测试。
export default {
test: {
coverage: {
provider: 'v8',
thresholds: { lines: 80, functions: 75, branches: 70 },
},
},
};
排错提示
- 覆盖率衡量执行,不等于正确。
- 阈值可能被无意义测试刷高。
- 生成代码会扭曲指标。
适用边界
- 不衡量正确性。
- 阈值可被规避。