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

How to specify Clover CoverageTarget Metrics in Jenkins Pipeline?

我正在使用 Clover 插件 (https://wiki.jenkins-ci.org/display/JENKINS/Clover+Plugin) 来发布我的覆盖率指标。

此外,我已经配置了 "coverage target metrics",如下所示 E:

现在我已经开始使用 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"

现在 npm test 如果代码覆盖率(行数)低于 80%(请参阅 istanbul npm 模块了解更多选项)

这实际上消除了Clover Plugin中指定阈值的依赖,从而解决了问题。

谢谢 拉姆亚

示例:

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
])

参考:https://wiki.jenkins-ci.org/display/JENKINS/Clover+Plugin