JavaCoCo使用(maven插件模式)

javacoco是一个免费的代码覆盖率检查工具,通过图形化展示帮助开发者评估代码质量。在maven项目中,可以通过配置jacoco-maven-plugin插件来集成和设定覆盖率规则,如限制方法和分支覆盖率最低要求。在执行mvncleaninstall后,可以生成覆盖率报告。需要注意的是,项目中使用lombok可能导致问题,以及覆盖率不达标时mvn命令会抛出异常。
摘要由CSDN通过智能技术生成

前言:javacoco是一款免费,并且简单并且一般一年一更新的代码覆盖率的检查工具
官方地址:https://www.eclemma.org/jacoco/
效果图:

在这里插入图片描述
从上图很容易看出代码是否被覆盖到,这个类或者方法是否被覆盖,还可以查看代码覆盖率等等作为验收报告来进行评估,从而提高开发人员的代码质量
———————————————————————————————————————
实战开始:
maven配置:

<plugins>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.8</version>
                <configuration>
                    <!--
                        包含(includes)或排除(excludes)字段的值应该是相对于目录/ classes /的编译类的类路径(而不是包名)
                        使用标准通配符语法:*匹配0个或n个字符, ** 匹配0个或n个目录, ? 匹配1个字符
                    -->
                    <!--                    <includes>-->
                    <!--                        <include>org/hai/**</include>-->
                    <!--                    </includes>-->
                    <!--你也可以这样排除一个包和它的所有子包/子包 -->
                    <!--                    <excludes>-->
                    <!--                        <exclude>com/src/**/*</exclude>-->
                    <!--                    </excludes>-->

                    <!-- rules裏面指定覆蓋規則 -->
                    <rules>
                        <rule implementation="org.jacoco.maven.RuleConfiguration">
                            <element>BUNDLE</element>
                            <limits>  
                                <!-- 指定方法覆蓋到50% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>METHOD</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.50</minimum>
                                </limit>
                                <!-- 指定分支覆蓋到50% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>BRANCH</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.50</minimum>
                                </limit>
                                <!-- 指定類覆蓋到100%,不能遺失任何類 -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>CLASS</counter>
                                    <value>MISSEDCOUNT</value>
                                    <maximum>0.1</maximum>
                                </limit>
                            </limits>
                        </rule>
                    </rules>
                </configuration>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <rule>
                                    <element>BUNDLE</element>
                                    <limits>
                                        <limit>
                                            <counter>COMPLEXITY</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>0.10</minimum>
                                        </limit>
                                    </limits>
                                </rule>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

ps:不要配置跳过测试,否则无法使用
在这里插入图片描述
然后随便写好单元测试就可以执行mvn clean install就👌了
在下面目录找到生成的文件浏览器打开就行
在这里插入图片描述
有坑:
1、项目中有lombok的可能会失败,版本问题,建议排查
2、设置覆盖率高时,若未达到,执行mvn命令时会抛出异常,但没有关系

有问题评论就行,看到会回复

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值