前言: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命令时会抛出异常,但没有关系
有问题评论就行,看到会回复