jenkins 管道作业的 Cobertura 代码覆盖率报告
Cobertura code coverage report for jenkins pipeline jobs
我正在使用 jenkins 的管道插件,我想为每个 运行 生成代码覆盖率报告并将其与管道 ui 一起显示。有没有我可以使用的插件(例如 Cobertura,但管道似乎不支持它)?
使用指定目录中的 command line cobertura-report
生成报告并将结果作为工件附加。
cobertura-report [--datafile file] --destination dir [--format
html|xml] [--encoding encoding] directory [--basedir dir]
有一种方法可以添加管道步骤来发布您的覆盖率报告,但它不会显示在 BlueOcean 界面下。它会正常显示 UI.
pipeline {
agent any
stages {
...
}
post {
always {
junit '**/nosetests.xml'
step([$class: 'CoberturaPublisher', autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', failUnhealthy: false, failUnstable: false, maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false])
}
}
}
请注意,Cobertura 插件的参数之一是它将使用的 XML(示例中的“**/coverage.xml”)。
如果您使用的是 python,您需要使用如下内容:
nosetests --with-coverage --cover-xml --cover-package=pkg1,pkg2 --with-xunit test
现在您也可以在 Jenkinsfile 中直接使用 cobertura
命令
stage ("Extract test results") {
cobertura coberturaReportFile: 'path-to/coverage.xml'
}
hwjp 的答案是正确的,但是您可以在命令中添加一些不容易找到的额外参数。
安装 Cobertura 插件后,您可以在
中找到 Cobertura 步骤选项
Job Dashboard Page -> Pipeline Syntax -> Steps Reference
还有一个片段生成器,对于入门非常有用
Job Dashboard Page -> Pipeline Syntax
示例命令:
cobertura coberturaReportFile: 'coverage.xml', enableNewApi: true, lineCoverageTargets: '80, 60, 70'
enableNewApi 是一个很好的设置为 true,因为新的 API 更漂亮 :D
如果代码覆盖率太低,设置覆盖率目标将自动失败
我正在使用 jenkins 的管道插件,我想为每个 运行 生成代码覆盖率报告并将其与管道 ui 一起显示。有没有我可以使用的插件(例如 Cobertura,但管道似乎不支持它)?
使用指定目录中的 command line cobertura-report
生成报告并将结果作为工件附加。
cobertura-report [--datafile file] --destination dir [--format
html|xml] [--encoding encoding] directory [--basedir dir]
有一种方法可以添加管道步骤来发布您的覆盖率报告,但它不会显示在 BlueOcean 界面下。它会正常显示 UI.
pipeline {
agent any
stages {
...
}
post {
always {
junit '**/nosetests.xml'
step([$class: 'CoberturaPublisher', autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', failUnhealthy: false, failUnstable: false, maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false])
}
}
}
请注意,Cobertura 插件的参数之一是它将使用的 XML(示例中的“**/coverage.xml”)。
如果您使用的是 python,您需要使用如下内容:
nosetests --with-coverage --cover-xml --cover-package=pkg1,pkg2 --with-xunit test
现在您也可以在 Jenkinsfile 中直接使用 cobertura
命令
stage ("Extract test results") {
cobertura coberturaReportFile: 'path-to/coverage.xml'
}
hwjp 的答案是正确的,但是您可以在命令中添加一些不容易找到的额外参数。
安装 Cobertura 插件后,您可以在
中找到 Cobertura 步骤选项Job Dashboard Page -> Pipeline Syntax -> Steps Reference
还有一个片段生成器,对于入门非常有用
Job Dashboard Page -> Pipeline Syntax
示例命令:
cobertura coberturaReportFile: 'coverage.xml', enableNewApi: true, lineCoverageTargets: '80, 60, 70'
enableNewApi 是一个很好的设置为 true,因为新的 API 更漂亮 :D 如果代码覆盖率太低,设置覆盖率目标将自动失败