You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按请求生成Jacoco覆盖率报告并清除历史采集数据

清除Jacoco Agent历史覆盖率数据的方案

针对单个请求的覆盖率分析需求,有几种实用的方式可以清除Jacoco Agent采集的历史数据:

1. 通过JMX接口实时重置数据

Jacoco Agent默认会暴露JMX管理Bean(org.jacoco:type=Runtime),无需重启应用即可清空历史数据:

  • 用jconsole可视化工具连接目标JVM,找到Jacoco对应的MBean,调用其中的reset()方法
  • 用命令行工具jcmd快速执行重置(替换<PID>为目标应用的进程ID):
jcmd <PID> org.jacoco.agent.runtime.Agent reset

执行后Agent会立即清空已采集的覆盖率数据,后续只会记录新请求的覆盖情况,适合在同一个进程中多次拆分采集不同请求的场景。

2. 启动Agent时禁用数据追加模式

如果你的测试流程允许每次单个请求前重启应用,可以在启动Jacoco Agent时设置append=false参数,这样每次启动都会覆盖现有的.exec文件,不会保留历史数据:

java -javaagent:/path/to/jacocoagent.jar=destfile=/path/to/jacoco-it.exec,append=false -jar your-application.jar

这种方式适合单次请求测试后重启服务的场景,确保每次都是全新的覆盖数据集合。

3. 手动删除现有.exec文件

在触发单个请求前,手动删除已有的jacoco-it.exec文件,Agent会在采集到新的覆盖数据时自动创建新的文件:

rm /path/to/jacoco-it.exec

这种方式最简单直接,适合脚本化的测试流程,比如在测试脚本中添加删除命令,确保每次请求的覆盖数据独立存储。

内容的提问来源于stack exchange,提问作者Dr Drake Ramoray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:50:33