我正在尝试使用jacoco代理远程获取覆盖数据,并在服务器上重置执行信息reset=true;
jacoco Java agent on server:
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="jacocolibjacocoant.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重置覆盖数据信息后,我转储它?
我遇到了同样的问题。但是请仔细观察,您会发现您拥有的两个覆盖数据转储并不相同。它们在大小上是一样的,但当你"区别"它们时就不一样了。
当您调用"reset"时,很容易假设jacocoagent将清除所有执行数据,并且您的下一次转储的大小预计为0,但事实并非如此。相反,jacocoagent将所有执行数据重置为"未执行",接下来转储的将是一个标记所有未执行的文件,而不是空文件。jacoco。exec文件大小与装入JVM的类的数量有关。
似乎您已经丢失了dump="true"
,并悄悄地用ant删除了文件。应该是
<jacoco:dump address="${server}" port="${port}" dump="true" reset="true" destfile="${result.exec.file}" append="false"/>
<delete file="${result.exec.file}"/>
更多信息在这里