Как указать метрики Clover CoverageTarget в конвейере Jenkins?

Я использую плагин Clover ( https://wiki.jenkins-ci.org/display/JENKINS/Clover+Plugin) для публикации моих показателей покрытия.

Кроме того, я настроил "целевые показатели покрытия", как показано на ней:

Теперь, когда я начал использовать плагин Jenkins 2.0 Pipelines, как я могу указать эти целевые метрики через скрипт Groovy (чтобы сборка не выполнялась, если покрытие не выполнено).

3 ответа

Решение

Пример:

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

Я думаю, что вы используете Shoud

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 и, таким образом, решает проблему.

Спасибо Рамя

Другие вопросы по тегам