Ember项目如何在测试覆盖率低于最低阈值时中断构建流程?
Ember测试覆盖率阈值中断构建解决方案
- 首先确认你项目中使用的是
ember-cli-code-coverage(Ember生态官方的覆盖率生成插件,你当前可正常生成报告说明已完成安装),该插件内置了覆盖率阈值校验、不达标中断构建的能力,无需额外引入第三方工具。 - 前往项目
config/目录,创建或修改coverage.js配置文件,参考以下示例填写你需要的阈值规则:
module.exports = { coverageEnvVar: 'COVERAGE', // 开启低于阈值时中断构建的能力 failBuildOnThreshold: true, thresholds: { // 全局覆盖率阈值,可根据团队要求调整数值 global: { statements: 80, branches: 75, functions: 80, lines: 80 }, // 可选配置:对每个单独文件生效的阈值规则 each: { statements: 60, branches: 50, functions: 60, lines: 60, // 可选配置:不需要校验阈值的文件路径 excludes: [ 'app/mocks/*', 'app/utils/test-helpers/**/*.js' ] } } }
- 配置完成后,你依然运行原本的测试命令
COVERAGE=true ember test即可生效。如果有任意一项覆盖率指标低于设定阈值,构建会直接抛出错误中断,同时输出具体不达标项的差异明细。
兼容旧版本方案
如果你使用的是v1.0以下的ember-cli-code-coverage,没有内置阈值校验能力,可以通过istanbul的命令行工具实现校验:
- 在package.json的scripts中新增自定义命令:
{ "scripts": { "test:coverage": "COVERAGE=true ember test && npx istanbul check-coverage --statements 80 --branches 75 --functions 80 --lines 80" } }
- 后续运行
npm run test:coverage即可,istanbul会自动读取生成的覆盖率报告做校验,不达标时自动中断流程。
内容的提问来源于stack exchange,提问作者Ijaz
相关产品推荐
相关产品推荐

