2014-05-19 4 views
1

jacoco 에이전트를 사용하여 원격으로 통신 가능 데이터를 가져오고 reset = true 인 서버에서 실행 정보를 재설정하려고합니다. 서버에서Jacoco tcpserver 덤프 재설정

jacoco 자바 에이전트 : 로컬 시스템에

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

개미 작업 :

<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가 작동하지 않는 것 같습니다.

코코아 데이터 정보를 덤프 한 다음 재설정하는 방법은 무엇입니까? 도움을 주시면 감사하겠습니다.

답변

2

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

더 많은 정보를이어야한다. 그러나 자세히 살펴보면 2 커버리지 데이터 덤프가 같지 않다는 것을 알 수 있습니다. 그것들은 크기면에서 동일하지만, 당신이 그것들을 "비교"하는 것은 아닙니다.

"reset"을 호출하면 jacocoagent가 모든 실행 데이터를 지우고 다음 덤프의 크기가 0이 될 것으로 예상되지만 그럴 수는 없습니다. 대신 jacocoagent는 모든 실행 데이터를 모두 "실행되지 않음"으로 재설정하고 다음에 덤프하는 것은 빈 파일이 아니라 실행되지 않은 모든 것을 표시하는 파일이됩니다. jacoco.exec 파일 크기는 JVM으로로드 된 클래스 수와 관련됩니다.

0

dump="true"을 잃어 버렸고 ant와 함께 파일을 조용히 삭제 한 것으로 보입니다. 내가 같은 문제가 발생 here