Jenkins集成clover做覆盖率报告
1.Jenkins安装插件Clover Plugin
2.修改配置文件
<1>.修改pom.xml
dependency部分
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
plugin部分
<plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>clover-maven-plugin</artifactId> <!-- maven-clover2-plugin before 4.1.1 --> <version>4.1.1</version> </plugin>
<2>.修改Jenkinsfile
//单元测试阶段 stage("unit-test") { when { expression { ENV =~ 'CI.*' } } steps { echo "自动化测试,单元测试" sh 'mvn clean clover:setup test clover:aggregate clover:clover' } //3.收集html测试报告 post { always { script { //allowEmptyResults: true允许空结果即没有测试报告输出,skipPublishingChecks: true跳过github发布检查 if (env.moudle_name == '.') { junit allowEmptyResults: true, skipPublishingChecks: true, testResults: "**/target/surefire-reports/*.xml" clover(cloverReportDir: 'target/site', cloverReportFileName: 'clover.xml', // optional, default is: method=70, conditional=80, statement=80 healthyTarget: [methodCoverage: 70, conditionalCoverage: 80, statementCoverage: 80], // optional, default is none unhealthyTarget: [methodCoverage: 50, conditionalCoverage: 50, statementCoverage: 50], // optional, default is none failingTarget: [methodCoverage: 0, conditionalCoverage: 0, statementCoverage: 0] ) publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: 'target/site/clover', reportFiles: 'index.html', reportName: 'HTML Report', reportTitles: '']) } else { junit allowEmptyResults: true, skipPublishingChecks: true, testResults: "**/${params.moudle_name}/target/surefire-reports/*.xml" clover(cloverReportDir: '${params.moudle_name}/target', cloverReportFileName: 'clover.xml', // optional, default is: method=70, conditional=80, statement=80 healthyTarget: [methodCoverage: 70, conditionalCoverage: 80, statementCoverage: 80], // optional, default is none unhealthyTarget: [methodCoverage: 50, conditionalCoverage: 50, statementCoverage: 50], // optional, default is none failingTarget: [methodCoverage: 0, conditionalCoverage: 0, statementCoverage: 0] ) publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: '${params.moudle_name}/target/site/clover', reportFiles: 'index.html', reportName: 'HTML Report', reportTitles: '']) } } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?