有人可以建议是否有办法在Jenkins管道中执行Jacoco?我已经下载了插件但是我没有在'Pipeline Syntax'中获得Jacoco选项,这是Pipeline脚本帮助。
推荐此网址:https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin 没有jenkins jacoco管道的信息
答案 0 :(得分:25)
在尝试搜索互联网以获取如何执行此操作的简单示例后,我最终找到了"步骤"我们的Jenkins实例中的工具。
它知道如何根据您安装的插件和模块生成Jenkinsfile管道代码片段。
它的长短是基本条目如下:
stage('Build') {
steps {
sh './jenkins_build.sh'
junit '*/build/test-results/*.xml'
step( [ $class: 'JacocoPublisher' ] )
}
}
jenkins文档确实需要更新一些单行示例。
答案 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*'
)
中找到更多选项
答案 2 :(得分:13)
从Jacoco插件2.2.1开始,您现在可以使用jacoco(execPattern: 'target/jacoco.exec')
我个人有几个不同的Jacoco文件用于不同的执行,并希望同时支持Maven和Gradle(所以build/
和target/
目录),所以我使用jacoco(execPattern: '**/*.exec')
。
答案 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'
)