← 中文资源

简体中文版本

为单元测试配置覆盖率门禁

开启覆盖率采集并设置强制阈值,使新代码无法在低于约定标准的情况下合并。

阅读英文原文

目标

覆盖率只测量不强制,导致发布一轮比一轮低。本配方在测试运行器中开启覆盖率并按行、函数、分支分别设置阈值,低于任一阈值即非零退出、阻断 CI;同时提醒覆盖率衡量执行而非正确性,关键模块应配合变异测试。

步骤要点

  1. 开启覆盖率并按指标设置阈值。
  2. 运行覆盖率达到门禁即失败。
  3. 对遗留代码按目录逐步收紧阈值。
  4. 对关键模块配合变异测试。
export default {
  test: {
    coverage: {
      provider: 'v8',
      thresholds: { lines: 80, functions: 75, branches: 70 },
    },
  },
};

排错提示

  • 覆盖率衡量执行,不等于正确。
  • 阈值可能被无意义测试刷高。
  • 生成代码会扭曲指标。

适用边界

  • 不衡量正确性。
  • 阈值可被规避。