JaCoCo运行时执行文件行为 | AI生成和翻译
当您在 WebSphere Liberty Profile 中配合 JaCoCo 代理 以 exec 模式运行时,JaCoCo 代理在运行期间不会修改原始的 .exec 文件。具体情况如下:
JaCoCo 在 exec 模式下的工作原理
- 目的:JaCoCo 代理在应用程序运行时收集代码覆盖率数据。
- 输出:它将覆盖率数据写入
.exec文件(例如jacoco.exec)。 - 文件行为:
- 如果文件不存在,JaCoCo 会创建该文件。
- 如果文件已存在,JaCoCo 会将新的覆盖率数据追加到文件中(不会覆盖或修改现有数据,除非您显式重置或合并文件)。
- 原始的
.exec文件不会被破坏或改变结构——只会随着新数据的加入而增长。
.exec 文件是否会被修改?
- 会,但仅通过追加数据:每次使用 JaCoCo 代理运行应用程序时,文件都会更新新的覆盖率信息。
- 无结构变化:
.exec文件的格式保持不变;它是一个包含覆盖率数据的二进制文件。
最佳实践
- 合并或重置:如需重新开始,请在再次运行应用程序前删除或重命名
.exec文件。 - 合并多次运行:如需合并多个
.exec文件,可使用 Maven 的jacoco:merge目标或org.jacoco.agent.rt.RT类。
Liberty 配置示例
在 Liberty 的 server.env 或 jvm.options 中可能会看到:
-javaagent:/path/to/jacocoagent.jar=destfile=/path/to/jacoco.exec,append=true
append=true确保新数据会追加到现有文件中。