一、流程
对应jenkinsfile流水线,还是那句话,要想生成覆盖率报告,先编译出class文件。
二、依赖组件
- manven(jdk)
- dff-cover(python)
- ant
三、查看覆盖率报告
这里有两个覆盖率报告:
全量覆盖率
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: “${env.WORKSPACE}/site/jacoco”, reportFiles: ‘index.html’, reportName: ‘Jacoco-Coverage’, reportTitles: ‘’])
报告文件见${env.WORKSPACE}/site/jacoco/index.html
注意:并不是全部的class文件都生成覆盖率报告,而是指定模块,或者业务类正则匹配。
当然,这就要求我们代码的命名要规范且统一。
增量覆盖率
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: “${env.WORKSPACE}/site/jacoco”, reportFiles: ‘diff.html’, reportName: ‘DiffCode-Coverage’, reportTitles: ‘’])
报告文件见${env.WORKSPACE}/site/jacoco/diff.html
四、归档覆盖率报告html
dir("${env.WORKSPACE}") {
archiveArtifacts artifacts: 'site/jacoco/', followSymlinks: false
}
五、持久化存储
1、jacoco相关
- jacocoant.jar
- jacococli.jar
jenkins slave 通过java -jar xxx.jar 调用上面的命令,以生成并获取测试覆盖率报告。
2、覆盖率报告文件
不同的 jenkins Job,分别创建一个目录,目录里存放文件jacoco.exec。
每次
附录
Java应用程序的测试覆盖率之设计与实现(一)-- 总体设计
Java应用程序的测试覆盖率之设计与实现(二)-- jacoco agent
Java应用程序的测试覆盖率之设计与实现(三)-- jacoco cli 客户端
Java应用程序的测试覆盖率之设计与实现(四)-- jacoco-maven-plugin
Java应用程序的测试覆盖率之设计与实现(五)-- jacoco ant task
Java应用程序的测试覆盖率之设计与实现(六)-- 单元测试覆盖率
Java应用程序的测试覆盖率之设计与实现(七)-- 增量代码的测试覆盖率
Java应用程序的测试覆盖率之设计与实现(八)-- jenkins集成