有没有人可以建议一种在Jenkins Pipeline中执行Jacoco的方法?我已经下载了插件,但在“Pipeline Syntax”(即Pipeline脚本帮助)中没有找到Jacoco选项。
参考以下网址:https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin 该页面并没有提供关于Jenkins Jacoco Pipeline的信息。
有没有人可以建议一种在Jenkins Pipeline中执行Jacoco的方法?我已经下载了插件,但在“Pipeline Syntax”(即Pipeline脚本帮助)中没有找到Jacoco选项。
参考以下网址:https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin 该页面并没有提供关于Jenkins Jacoco Pipeline的信息。
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管道步骤参考文档中找到更多选项。
从Jacoco插件2.2.1开始,您现在可以使用jacoco(execPattern: 'target/jacoco.exec')
我个人有几个不同的Jacoco文件用于不同的执行,并希望支持Maven和Gradle(因此使用build/
和target/
目录),所以我使用jacoco(execPattern: '**/*.exec')
。
jacoco(execPattern: '**/build/jacoco/**.exec', classPattern: '**/classes/*/main')
- nerdherdVersion 2.1.0 (Sep 29, 2016)
JENKINS-27120 添加JaCoCo发布者的Workflow支持
这可能是因为它的使用方法很简单,类似于许多其他步骤的用法:
step([$class: 'JacocoPublisher', ...])
因为已经接受的那个来自jacoco
DSL的答案对我没有用,所以我希望您能再发表一个回答。
WorkflowScript: 86: Invalid parameter "execPattern", did you mean "path"? @ line 86, column 20.
jacoco(execPattern: 'build/jacoco/test.exec')
publishCoverage adapters: [jacocoAdapter('build/reports/jacoco/test/jacocoTestReport.xml')]
使用 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'
)
`sh "./gradlew jacocoTestReport"` `publishHTML(target: [reportDir:'build/jacocoHtml', reportFiles: 'index.html', reportName: 'Code Coverage'])`
- Jacob Aae Mikkelsen