Jacoco 单测覆盖统计工具

本文介绍了如何使用JaCoCo在Maven项目中实现代码覆盖率度量,包括行、类、分支、方法和指令覆盖率,以及如何在多模块项目中设置和执行jacoco-report-aggregate以生成报告。
摘要由CSDN通过智能技术生成
基础概念

行覆盖率:度量被测程序的每行代码是否被执行,判断标准行中是否至少有一个指令被执行。

类覆盖率:度量计算class类文件是否被执行。

分支覆盖率:度量if和switch语句的分支覆盖情况,计算一个方法里面的总分支数,确定执行和不执行的 分支数量。

方法覆盖率:度量被测程序的方法执行情况,是否执行取决于方法中是否有至少一个指令被执行。

指令覆盖:计数单元是单个java二进制代码指令,指令覆盖率提供了代码是否被执行的信息,度量完全 独立源码格式。

圈复杂度:在(线性)组合中,计算在一个方法里面所有可能路径的最小数目,缺失的复杂度同样表示测 试案例没有完全覆盖到这个模块。

https://www.jianshu.com/p/639e51c76544

解决方案

JaCoCo version 0.7.7 implemented a new maven goal jacoco:report-aggregate.

https://www.eclemma.org/jacoco/trunk/doc/report-aggregate-mojo.html

需要额外添加一个子工程『cov』,该工程只有pom文件,文件中引用所有的subProject,并进行jacoco相应的配置(主要是outputDirectory目录)。

编译命令 mvn verify -Pjacoco

<parent>
 <artifactId>parentProject</artifactId>
 <groupId>com.jacoco.multimodule.test</groupId>
 <version>${parent-version}</version>
 </parent>
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.jacoco.multimodule.test</groupId>
 <artifactId>cov</artifactId>
 <version>1.0</version>
 <packaging>pom</packaging>
 <properties>
 <maven.deploy.skip>true</maven.deploy.skip>
 </properties>
 <profiles>
 <profile>
 <id>jacoco</id>
 <activation>
 <activeByDefault>false</activeByDefault>
 </activation>
 <build>
 <plugins>
 <plugin>
 <groupId>org.jacoco</groupId>
 <artifactId>jacoco-maven-plugin</artifactId>
 <executions>
 <execution>
 <id>default</id>
 <phase>verify</phase>
 <goals>
 <goal>report-aggregate</goal>
 </goals>
 <configuration>
 <outputDirectory>${project.basedir}/../target/site/jacoco</outputDirectory>
 </configuration>
 </execution>
 </executions>
 </plugin>
 </plugins>
 </build>
 </profile>
 </profiles>
 <!-- add project module info as below -->
 <dependencies>
 <dependency>
 <groupId>com.jacoco.multimodule.test</groupId>
 <artifactId>subProject1</artifactId>
 </dependency>
<dependency>
 <groupId>com.jacoco.multimodule.test</groupId>
 <artifactId>subProject2</artifactId>
 </dependency>
 </dependencies>
 </project> 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kingairy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值