JACOCO使用

本文详细介绍了如何在毕业设计中利用jacoco进行API覆盖率测试,包括编译依赖、javaagent插桩、执行测试、生成报告及多文件处理技巧。通过实例演示,展示了如何阅读和理解覆盖率报告的关键指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jacoco使用

在毕业设计中,老师希望知道每个测试api的覆盖率是多少。所以在网上看到了jacoco可以统计覆盖率,下面就是jacoco的使用过程记录。

1. 首先对driver进行编译,依赖要加上。

javac -cp xxxxxx[依赖] xxx.java
先把所有的文件编译好,以便运行。

2. 使用javaagent运行时插桩,运行被测程序,把输入喂给程序

java -cp xxxxxx[依赖] -javaagent:[yourpath/]jacocoagent.jar=destfile=xxxx.exec xxx[被测程序] xxxxx[输入]

在这里我采用的是使用shell的方式去遍历所有的目录下的输入去执行,把输出文件和依赖都写固定了,如果想要运行其他或者生成不同的exec文件,可以直接在shell中修改即可。
我们采用的是运行时插桩的模式;可以从启动参数javaagent看出

#! /bin/bash
input=$1
cur=$PWD
cd $input
for file in `ls | grep id`
do
f=$input$file
cd $cur
java -cp /home/lfl/commons-imaging/target/commons-imaging-1.0-alpha3-SNAPSHOT.jar:/home/lfl/test_jacoco/ -javaagent:/home/lfl/jacoco-0.8.7/lib/jacocoagent.jar=destfile=bmp.exec ImagingBmpDriver $f
done

3. 使用report输出覆盖率信息,以html形式查看,生成的文件是index.html文件名是固定的

java -jar [yourpath/]jacococli.jar report xxxx.exec --classfiles [依赖] --html [输出文件夹]


可以从上图看到,生成的是一个文件夹,文件夹中的index.xml便是我们想要的消息。
在这里插入图片描述
jacoco记录的消息还是很全面的;比如说指令覆盖,绿色表示已经覆盖的,红色表示未覆盖,百分数就是表示覆盖率。
覆盖率信息有指令覆盖、分支覆盖、行覆盖、方法覆盖、类型覆盖、圈复杂度覆盖

4.后续

https://stackoverflow.com/questions/47717538/usage-of-jacococli-jar-with-multiple-classfiles
在后续的操作中如果有多个的classfile位置,必须多次指定--classfiles,上面是一个解决的链接

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

meilidekcl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值