2016-10-11 3 views
1

Ich habe eine Java-Webanwendung, die auf einem Wildfly 9-Server ausgeführt wird, und ich verwende die jmeter-maven-plugin, um einige Leistungstests für die laufende Instanz meiner Anwendung auszuführen. Diese Tests führen einfache REST-Anforderungen für die Dienste meiner Anwendung aus.JaCoCo-Agent verfolgt keine Code-Coverage-Informationen

Was ich tun möchte, ist die Code Coverage Statistiken der Leistungstests abrufen, so dass ich immer weiß, was die Menge an Covered Code meiner Leistungstests ist.

Nach this, this und this StackOverflow-Threads Ich habe den JaCoCo Java Agent auf dem Server eingerichtet. Dies ist der Agent-Konfiguration beim Start

set "JAVA_OPTS=%JAVA_OPTS% -javaagent:/path/to/jacocoagent.jar=output=tcpserver,address=*,port=6300,includes=my.package.*" 

Auch ich die jacoco-maven-plugin auf der Tests Maven Projekt konfiguriert, um es zu lassen, einen Dump auf dem Server ausführen, um die Ausführungsinformationen abzurufen.

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.7.201606060606</version> 
    <configuration> 
     <destFile>${sonar.jacoco.itReportPath}</destFile> 
     <append>false</append> 
    </configuration> 
    <executions> 
     <execution> 
      <id>jacoco-dump</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>dump</goal> 
      </goals> 
      <configuration> 
       <address>my.server</address> 
       <skip>${skipJMeterTests}</skip> 
       <!-- <reset>true</reset> --> 
      </configuration> 
     </execution> 
    </executions> 

</plugin> 

Also, wenn ich mvn verify alle Leistungstests laufen laufen (so die REST-Dienste werden als in der Tat) und das JaCoCo Plugin-Dumps korrekt den Server jacoco.exec Datei, aber wenn ich diese Datei inspizieren mvn sonar:sonar ich laufen ein 0% Abdeckung des Codes, obwohl die Dienste von den Leistungstests aufgerufen wurden.

Was könnte das Problem sein? Ich habe verschiedene Konfigurationen des Agenten und des Plugins ausprobiert, schien aber mein Problem nicht zu lösen.

Danke

+0

Mehrere Dinge nicht wurde mit Ihnen überprüfen könnten. 1) Sind die Laufzeitklassen dieselbe Version wie die Klassen, auf denen Sie den Bericht ausführen? 2) Wird mit der Server-Startup-Datei auch ein anderer Java-Agent vor Jacoco aufgerufen (zB: Wiley Introscope)? Dies kann Probleme verursachen, da jacoco Klassen erhalten muss, die vom anderen Agenten instrumentiert werden. –

+0

Wie finden Sie die Abdeckung heraus? Ein Plugin auf dem Server, das die Abdeckung bestimmt, kann ein Versions-Problem haben. JaCoCo ändert das Exec-Format in 0.7.5. Wenn Sie die aktuelle JaCoCo-Version verwenden, müssen Sie ein aktuelles Sonar-Plugin verwenden. Ich erinnere mich an das gleiche Problem mit JaCoCo Plugin für Jenkins. –

+0

@ShashankKadne: 1) ja, die Versionen sind die gleichen. 2) Nein, auf dem Server läuft kein anderer Java Agent. – gvdm

Antwort

0

gelöst, ich habe die gleiche Version der Software auf dem Server und Testseite

Verwandte Themen