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: ''])
                        }
                    
                    }
                }
            }
        }
复制代码

 

posted @   潇潇暮鱼鱼  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示