Jacoco 单测覆盖统计工具

基础概念

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

类覆盖率:度量计算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


 parentProject
 com.jacoco.multimodule.test
 ${parent-version}
 
 4.0.0
 com.jacoco.multimodule.test
 cov
 1.0
 pom
 
 true
 
 
 
 jacoco
 
 false
 
 
 
 
 org.jacoco
 jacoco-maven-plugin
 
 
 default
 verify
 
 report-aggregate
 
 
 ${project.basedir}/../target/site/jacoco
 
 
 
 
 
 
 
 
 
 
 
 com.jacoco.multimodule.test
 subProject1
 

 com.jacoco.multimodule.test
 subProject2
 
 
  

 

你可能感兴趣的:(JAVA,java,mysql,数据库)