如何在Jenkins管道中指定Clover CoverageTarget指标?

如何在Jenkins管道中指定Clover CoverageTarget指标?,jenkins,jenkins-pipeline,clover,Jenkins,Jenkins Pipeline,Clover,我正在使用Clover插件()发布我的覆盖率指标 此外,我还配置了“覆盖率目标指标”,如下所示: 既然我已经开始使用Jenkins 2.0 Pipelines插件,那么如何通过Groovy脚本指定这些目标指标(这样,如果不满足覆盖率,构建就会失败)。我认为您应该使用 step([$class: 'CloverPublisher', cloverReportDir: 'target/site/clover', cloverReportFileName: 'clover.xml']) 所以我找到

我正在使用Clover插件()发布我的覆盖率指标

此外,我还配置了“覆盖率目标指标”,如下所示:

既然我已经开始使用Jenkins 2.0 Pipelines插件,那么如何通过Groovy脚本指定这些目标指标(这样,如果不满足覆盖率,构建就会失败)。

我认为您应该使用

step([$class: 'CloverPublisher', cloverReportDir: 'target/site/clover', cloverReportFileName: 'clover.xml'])

所以我找到的解决方案是:

在package.json中,定义以下任务:

"test": "mocha test/  && npm run-script coverage",
"coverage": "npm run-script analyze-coverage && npm run-script check-coverage",
"analyze-coverage": "istanbul cover _mocha -- -R tap test/*.js  > test.tap && istanbul report clover",
"check-coverage": "istanbul check-coverage --lines 80"
现在,如果代码覆盖率(行数)小于80%(更多选项请参见伊斯坦布尔npm模块),npm测试将失败

这实际上消除了在Clover插件中指定阈值的依赖性,从而解决了这个问题

谢谢 拉姆亚

示例:

step([
  $class: 'CloverPublisher',
  cloverReportDir: 'target/site',
  cloverReportFileName: 'clover.xml',
  healthyTarget: [methodCoverage: 70, conditionalCoverage: 70, statementCoverage: 70], // optional, default is: method=70, conditional=80, statement=80
  unhealthyTarget: [methodCoverage: 50, conditionalCoverage: 50, statementCoverage: 50], // optional, default is none
  failingTarget: [methodCoverage: 0, conditionalCoverage: 0, statementCoverage: 0]     // optional, default is none
])

参考资料:

谢谢。让我试试。顺便说一句,建议的解决方案没有帮助。我通过添加伊斯坦布尔npm模块中可用的检查使其工作。