坚持,你才会成功

坚持,你才会成功

写在前头

之前在公司实习的时候,组内一个老哥对这个测试十分的看重,几乎要达到100%的覆盖面积。

我当时特别的不是很理解,感觉自己测试下每个分支就好了,不用搞的那么复杂,后期又难以维护。

后来渐渐发觉,这是对自己代码的不负责任,也是对用户不负责任

Jacoco代码覆盖率

这是其官网介绍,也就是说,这个插件可以检测到你写了多少个测试。

而这些测试又对你的代码覆盖了多少

Jacoco用法

首先在Maven中引入一下插件

 1 <!-- 代码测试覆盖率 -->
 2 <plugin>
 3     <groupId>org.jacoco</groupId>
 4     <artifactId>jacoco-maven-plugin</artifactId>
 5     <version>0.7.8</version>
 6     <executions>
 7         <execution>
 8             <id>prepare-agent</id>
 9             <goals>
10                 <goal>prepare-agent</goal>
11             </goals>
12         </execution>
13         <execution>
14             <id>report</id>
15             <phase>prepare-package</phase>
16             <goals>
17                 <goal>report</goal>
18             </goals>
19         </execution>
20     </executions>
21 </plugin>

然后Maven执行  mvn clean install -Dmaven.test.failure.ignore=true

后面红色划重点,意思是:如果在单元测试中,出现了错误,那么忽略他,继续执行下去。

这样的好处是,Maven可以执行完,然后生成代码覆盖率,否则一报错,就不会生成代码覆盖率了。

Jacoco生成内容

代码测试覆盖率-LMLPHP

我们可以在你的项目中 /target/site/jacoco/index.html  找到代码覆盖率

代码测试覆盖率-LMLPHP

打开后如上图,红色代码没有覆盖到的代码,绿色代表已经覆盖到的代码。

因为我这个是学习Jacoco,就写了一个测试service的测试用例,所以覆盖的很少。

可以从图中看到,service业务层覆盖率已经到达了69%。我们点进去再看看

代码测试覆盖率-LMLPHP

我们可以很清晰的看到,哪一个类被覆盖到了,哪一个类没有被覆盖到,很好的提醒我们,接下来的测试案例应该怎么写。

代码测试覆盖率-LMLPHP

点进去甚至可以看到哪一行没有被覆盖到,十分的强大。

附录

02-26 16:31