gpt4 book ai didi

java - Jacoco tcpserver 重置转储

转载 作者:行者123 更新时间:2023-11-30 03:53:52 28 4
gpt4 key购买 nike

我正在尝试使用 jacoco 代理远程获取覆盖数据,并使用 Reset=true 重置服务器上的执行信息;

服务器上的jacoco java代理:

JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:applications/jacoco/lib/jacocoagent.jar=output=tcpserver,address=*,port=36320"

本地计算机上的 Ant 任务:

<project name="Ant Report Build with JaCoCo" default="get_data" xmlns:jacoco="antlib:org.jacoco.ant">

<property name="result.exec.file" value="test_data.exec"/>
<property name="server" value="my-server.com" />
<property name="port" value ="36320" />

<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="jacoco\lib\jacocoant.jar"/>
</taskdef>


<target name="get_data">
<jacoco:dump address="${server}" port="${port}" reset="true" append="false" destfile="${result.exec.file}"/>
</target>

</project>

我的问题是在获得转储后重置执行信息。如果我在服务器上执行一些操作,然后调用我的 ant 目标“get_data”两次,在执行之间删除 test_data.exec 文件,我会得到相同的覆盖数据。所以看来reset=true不起作用。

如何让 Jacoco 在转储后重置 coverega 数据信息?将不胜感激任何帮助。

最佳答案

我遇到了同样的问题。但请仔细观察,您会发现您拥有的 2 个覆盖数据转储并不相同。它们的大小相同,但当您“比较”它们时,它们的大小不同。

当您调用“重置”时,很容易假设 jacocoagent 将清除所有执行数据,并且您的下一个转储的大小预计为 0,但事实并非如此。相反,jacocoagent 将所有执行数据全部重置为“未执行”,接下来转储的将是一个标记所有未执行内容的文件,而不是空文件。 jacoco.exec 文件大小与已加载到 JVM 中的类数量相关。

关于java - Jacoco tcpserver 重置转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23737268/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com