能否在Jenkins仪表盘展示Jacoco覆盖率报告及类Test Trend Result的HTML报告?
Jenkins仪表盘展示Jacoco覆盖率报告方案
当然可以在Jenkins仪表盘上展示Jacoco覆盖率报告,而且完全能实现类似Test Trend Result的趋势展示效果!我给你分两种场景详细说明:
一、直接用Jacoco插件实现仪表盘趋势展示
Jenkins官方的Jacoco Plugin专门做这件事,它不仅能解析覆盖率数据,还会自动在仪表盘生成历史趋势图和覆盖率摘要,操作非常简单:
- 先确保Jenkins已经安装了Jacoco Plugin(在「系统管理」→「插件管理」里搜索安装)
- 在你的Jenkinsfile中添加
jacoco步骤,示例如下:
pipeline { agent any stages { stage('Build & Run Tests') { steps { // 替换成你项目的构建+测试命令,确保生成jacoco.exec文件 sh 'mvn clean test jacoco:report' // Maven项目示例 // sh './gradlew test jacocoTestReport' // Gradle项目示例 } } } post { always { jacoco( execPattern: '**/target/jacoco.exec', // Maven生成路径,Gradle一般是**/build/jacoco/test.exec classPattern: '**/target/classes', sourcePattern: '**/src/main/java' ) } } }
- 运行流水线后,你会在Jenkins项目的仪表盘看到Jacoco模块,里面包含:
- 覆盖率摘要(类、方法、行、分支的覆盖率百分比)
- 类似
Test Trend Result的历史趋势折线图,追踪每次构建的覆盖率变化 - 点击进入还能查看详细的覆盖率明细报告
二、结合publishHTML生成的自定义报告实现仪表盘展示
如果你已经用publishHTML生成了HTML格式的Jacoco报告,想要在仪表盘展示它的话,可以这么做:
方式1:保留趋势+自定义报告入口
上面的Jacoco插件已经能提供趋势展示,你可以同时保留publishHTML步骤,把自定义HTML报告作为补充:
post { always { // 先配置Jacoco生成趋势 jacoco(execPattern: '**/target/jacoco.exec') // 再发布自定义HTML报告 publishHTML( target: [ allowMissing: false, keepAll: true, reportDir: 'target/site/jacoco', // Maven生成的HTML报告路径,Gradle是build/reports/jacoco/test/html reportFiles: 'index.html', reportName: 'Custom Jacoco HTML Report' ] ) } }
这样配置后:
- 仪表盘通过Jacoco模块看趋势和摘要
- 流水线的「Artifacts」栏会有自定义报告的入口,点击就能打开详细HTML报告
方式2:把HTML报告入口放到仪表盘
如果想把自定义HTML报告的直接入口放到仪表盘,可以安装Dashboard View插件,创建一个自定义仪表盘页面:
- 进入项目→「视图」→「新建视图」,选择「Dashboard View」
- 在视图配置中添加「HTML Widget」或者「Link Widget」,把自定义报告的URL(比如
http://your-jenkins-url/job/your-job-name/lastSuccessfulBuild/Custom%20Jacoco%20HTML%20Report/)填进去 - 这样就能在自定义仪表盘上直接点击打开HTML报告了
注意事项
- 确保所有用到的插件(Jacoco Plugin、HTML Publisher Plugin、Dashboard View)都已安装
- 配置路径时要和你的项目构建工具(Maven/Gradle)生成的文件位置对应,避免路径错误导致报告无法加载
- Jacoco插件的趋势展示是基于每次构建的覆盖率数据自动生成的,比手动做趋势更准确方便
内容的提问来源于stack exchange,提问作者dicle
相关产品推荐
相关产品推荐

