Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jenkins管道作业的Cobertura代码覆盖率报告_Jenkins_Jenkins Pipeline_Cobertura - Fatal编程技术网

jenkins管道作业的Cobertura代码覆盖率报告

jenkins管道作业的Cobertura代码覆盖率报告,jenkins,jenkins-pipeline,cobertura,Jenkins,Jenkins Pipeline,Cobertura,我正在使用jenkins的管道插件,我想为每次运行生成代码覆盖率报告,并将其与管道ui一起显示。是否有我可以使用的插件(例如Cobertura,但它似乎不受管道支持)?在指定目录中使用Cobertura报告生成报告,并将结果作为工件附加 cobertura-report [--datafile file] --destination dir [--format html|xml] [--encoding encoding] directory [--based

我正在使用jenkins的管道插件,我想为每次运行生成代码覆盖率报告,并将其与管道ui一起显示。是否有我可以使用的插件(例如Cobertura,但它似乎不受管道支持)?

在指定目录中使用
Cobertura报告生成报告,并将结果作为工件附加

cobertura-report   [--datafile   file]    --destination  dir  [--format
       html|xml]  [--encoding encoding]  directory [--basedir dir]

有一种方法可以添加一个管道步骤来发布覆盖率报告,但它不会显示在BlueOcean界面下。它将在普通用户界面中显示良好

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

现在,您还可以在文件中直接使用
cobertura
命令

stage ("Extract test results") {
    cobertura coberturaReportFile: 'path-to/coverage.xml'
}

来源:

来自hwjp的答案是正确的,但是您可以添加到命令中的额外参数不容易找到

一旦安装了Cobertura插件,就可以在中找到Cobertura步骤选项

作业仪表板页面->管道语法->步骤参考

还有一个代码段生成器,它对于开始使用非常有用

作业仪表板页面->管道语法

命令示例:

cobertura coberturaReportFile: 'coverage.xml', enableNewApi: true, lineCoverageTargets: '80, 60, 70'
enableNewApi是一个很好的设置,因为新的API要漂亮得多:D
如果代码覆盖率太低,设置覆盖率目标将自动导致作业失败

您应该提供更多信息。你用什么编程语言?你更喜欢什么构建工具?我有python、javascript和其他类型的项目,我一直在自由式项目上使用Cobertura来显示代码覆盖率报告。但是,在切换到管道之后,我没有获得为项目设置Cobertura的构建后UI。请检查您的插件是否是通过管道作业完成的。看起来这里有一个反对Cobertura插件的问题:您太棒了。非常感谢。你有关于这个的文档链接吗?对我来说很有用,比原来的解决方案简单得多。谢谢这两个插件都可以工作,但是在Jenkins文件中,这个插件更容易使用。哪个版本的Cobertura插件与Jenkins 2.204.1兼容