JaCoCo从脱水到浸泡 (3)JaCoCo使用
通过Maven 插件使用JaCoCo
JaCoCo 提供了maven插件可以方便地和Maven工具进行集成,我们可以通过一个简单的项目来实践一下
一个简单的Demo
首先我们创建一个Maven项目,如下图:
项目非常简单,一个业务类Calculator 以及对这个类的一个单元测试类CalculatorTest
Calculator.java
public class Calculator {
public int add(int a,int b){
return a + b;
}
public int subtract(int a ,int b){
return a - b;
}
public int multiplicative(int a, int b){
return a * b;
}
public float divide(int a,int b){
return (float) a / (float)b;
}
}
CalculatorTest.java
public class CalculatorTest {
Calculator calculator;
@Before
public void before(){
calculator = new Calculator();
}
@Test
public void add() {
}
@Test
public void subtract() {
}
@Test
public void multiplicative() {
int c = calculator.multiplicative(1,2);
Assert.assertEquals(2,c);
}
@Test
public void divide() {
}
}
pom.xml的配置中,在dependencies节点中增加JUnit的依赖配置
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
在build->plugins节点中,增加JaCoCo的插件配置
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<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>
</executions>
</plugin>
然后,在Maven工具窗口中运行verify
Maven构建工具对项目进行编译,运行单元测试,打包,生成单元覆盖率报告,默认情况下,JaCoCo的覆盖数据文件以及覆盖率报告文件会在项目的target目录下生成,如下图
其中jacoco.exec为JaCoCo代码覆盖的原始数据文件,这个我们后面会详细讲解,site目录为JaCoCo默认生成的单测报告所在目录,默认情况下,JaCoCo会生成xml,csv以及html三个格式的报告
直接用浏览器打开index.html文件,既可看到对应代码的覆盖情况
报告会对代码进行指令覆盖,分支覆盖,圈复杂度覆盖,行覆盖,方法覆盖,类覆盖进行统计,报告分四层,第一层为项目所有的包的汇总统计,点击对应的包名,能看到该包下面的各个类的覆盖统计情况,点击对应的类名,可以看到该类下面各方法的覆盖明细情况,再点击具体的方法名,既可通过代码高亮显示的方式显示该类的代码覆盖情况,如下图
从上面的报告来看,当前项目的单测整体指令覆盖率为25%,而行覆盖率也是25% (8-6)/8
本文来源:http://code.tianjuzi.com/article/jacoco_3

浙公网安备 33010602011771号