记一下首次使用jacoco检测待测服务的代码覆盖率

1.先简单的写了一个springboot的服务

记一下首次使用jacoco检测待测服务的代码覆盖率

防止端口冲突,在配置文件里改了一下端口

记一下首次使用jacoco检测待测服务的代码覆盖率

2.打成可执行jar包

首先新增maven配置,在commandline中填写 clean package

记一下首次使用jacoco检测待测服务的代码覆盖率

然后执行build project

记一下首次使用jacoco检测待测服务的代码覆盖率

就可以在target目录看到我们打成的jar包

记一下首次使用jacoco检测待测服务的代码覆盖率

3.在服务器上执行jar包,启动服务

首先下载jacocoagent.jar,该步骤本文不做赘述,可自行百度,然后上传到服务器上,执行如下命令

记一下首次使用jacoco检测待测服务的代码覆盖率

java -javaagent:./jacocoagent.jar=dumponexit=true,destfile=/usr/mock/jacoco.exec -jar mocktest04-1.0-SNAPSHOT.jar

其中,./jacocoagent.jar为下载的jacocoagent.jar所在的路径,destfile=/usr/mock/jacoco.exec是为将要生成的结果文件指定路径mocktest01-1.0-SNAPSHOT.jar为要启动的服务jar包

4.开始测试

在完成上一个步骤后,如果不出意外服务正常启动后,可以访问对应的测试服务接口,从而调用服务

在这次的测试中服务器ip为192.168.4.135,端口我们设置的是9090,这样我们访问的接口地址就是192.168.4.135:9090/test1、192.168.4.135:9090/test1、192.168.4.135:9090/test1

我们测试一下,只访问test1和test3

记一下首次使用jacoco检测待测服务的代码覆盖率

5.停止服务

这里不可以用kill -9强制中断进程,了解到有很多其他方法,我这里就采用了最简单的kill -15来杀掉服务进程

其他高端一点设计或者手段,或者不停止服务的情况下动态获取覆盖率的方法,后面再研究

这样成功停止服务后,我们再上面的指定的路径下就可以看到生成的结果文件jacoco.exec

6.打开结果文件

对于jacoco.exec文件的处理有很多种,这里我们只用最简单直接的方法,就是用idea查看

首先选择Analyze下的Show Coverage Data

记一下首次使用jacoco检测待测服务的代码覆盖率

点击+,然后找到我们的结果文件

记一下首次使用jacoco检测待测服务的代码覆盖率

然后你就会看到Coverage视窗,可以看到类覆盖率,方法覆盖

记一下首次使用jacoco检测待测服务的代码覆盖率

可双击指定类来查看该类下的覆盖详情

可以看到在覆盖到的行前面被标绿,没被覆盖到的行前被标红,这样我们就知道哪些代码被覆盖到,哪些没被覆盖到

记一下首次使用jacoco检测待测服务的代码覆盖率