詹金斯管道中的Jacoco报道

时间:2017-01-27 12:17:40

标签: jenkins groovy jenkins-plugins jacoco

有人可以建议是否有办法在Jenkins管道中执行Jacoco?我已经下载了插件但是我没有在'Pipeline Syntax'中获得Jacoco选项,这是Pipeline脚本帮助。

推荐此网址:https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin 没有jenkins jacoco管道的信息

5 个答案:

答案 0 :(得分:25)

在尝试搜索互联网以获取如何执行此操作的简单示例后,我最终找到了"步骤"我们的Jenkins实例中的工具。

它知道如何根据您安装的插件和模块生成Jenkinsfile管道代码片段。

它的长短是基本条目如下:

stage('Build') {
     steps {
        sh './jenkins_build.sh'
        junit '*/build/test-results/*.xml'
        step( [ $class: 'JacocoPublisher' ] )
     }
}

jenkins文档确实需要更新一些单行示例。

Example from Jenkins 2.32.x

答案 1 :(得分:19)

jacoco管道步骤配置使用以下格式:

step([$class: 'JacocoPublisher', 
      execPattern: 'target/*.exec',
      classPattern: 'target/classes',
      sourcePattern: 'src/main/java',
      exclusionPattern: 'src/test*'
])

或者使用更简单的声明性管道语法:

jacoco( 
      execPattern: 'target/*.exec',
      classPattern: 'target/classes',
      sourcePattern: 'src/main/java',
      exclusionPattern: 'src/test*'
)

您可以在JaCoCo Pipeline Steps Reference

中找到更多选项

答案 2 :(得分:13)

从Jacoco插件2.2.1开始,您现在可以使用jacoco(execPattern: 'target/jacoco.exec')

我个人有几个不同的Jacoco文件用于不同的执行,并希望同时支持Maven和Gradle(所以build/target/目录),所以我使用jacoco(execPattern: '**/*.exec')

参考:https://github.com/jenkinsci/jacoco-plugin/pull/83

答案 3 :(得分:2)

如果您要查看list of plugins compatible with pipeline,您会发现Jenkins JaCoCo插件was made compatible,但没有任何文档更新,但entry in changelog除外:

  

版本2。1。0(2016年9月29日)

     

JENKINS-27120为JaCoCo发布者添加工作流支持

可能是因为它的使用很简单,与使用许多其他步骤类似:

step([$class: 'JacocoPublisher', ...])

答案 4 :(得分:0)

使用 Jacoco jenkins 插件的最佳方法是负责在应用程序中生成可执行文件( jacoco.exec ),然后在该文件中指向该文件的位置。管道。 尽管对于多模块项目,其配置会稍有不同,请参见:Jacoco code coverage for multi module maven project

Jenkins管道看起来像:

jacoco(
    execPattern: '**/path_to_file/jacoco.exec',
    classPattern: '**/coverage/**',
    sourcePattern: '**/coverage/**',
    inclusionPattern: '**/*.class'
)