2014-04-06 12 views
8

abgeladen ich Sonarqube in einem jenkins Job renne (mit Post-Build-Aktionen). ich folgendes Problem mit JaCoCo bekommen -Sonarqube - keine JaCoCo Ausführungsdaten wurden

[INFO] [16:57:43.157] Sensor JaCoCoSensor... 
[INFO] [16:57:43.157] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/.../target/jacoco.exec 
[INFO] [16:57:43.426] Sensor JaCoCoSensor done: 269 ms 

Als Ergebnis, ich bin für mein Projekt 0% Code Coverage bekommen. Konnte nicht finden warum jacoco.exec nicht erstellt wird.

Ich habe keine "JaCoCo" von Maven ausführen konfiguriert (in meinem pom.xml). Ich weiß, dass in der Vergangenheit die jacoco.exec sowieso erstellt wurde (wahrscheinlich von Sonar selbst).

Was mache ich falsch? Muss ich JaCoCo in meiner pom.xml konfigurieren, damit es funktioniert? Danke.

+0

Haben Sie bei https://github.com/SonarSource/sonar-examples/tree/1fca5c965196c0f30ef8fa4c79ace36b40ec3753/projects/languages/java/code-coverage/ut/ut-maven-jacoco-runTests geschaut? – ZhekaKozlov

+0

Wie soll ich es mit meinem Job bei Jenkins verwenden? Wo sollte ich "-Poverage-pro-Test" in der Jobkonfiguration verwenden? –

Antwort

4

Aus dem Web Java Ecosystem:

Es ist nicht mehr möglich Sonarqube die Ausführung der Unit-Tests fahren zu lassen. Sie haben nun die JUnit und Code-Coverage- (JaCoCo oder Cobertura oder Klee) berichtet, vor dem Sonarqube Analyse und dann füttern Sonarqube mit diesen Berichten zu generieren.

So müssen Sie Jacoco in der pom.xml enthalten:

<plugin> 
     <groupId>org.jacoco</groupId> 
     <artifactId>jacoco-maven-plugin</artifactId> 
     <version>0.7.0.201403182114</version> 
    <configuration> 
     <destFile>${basedir}/target/jacoco-unit.exec</destFile> 
     <dataFile>${basedir}/target/jacoco-unit.exec</dataFile> 
    </configuration> 
     <executions> 
      ... 
     </executions> 
    </plugin> 

Und geben Sie diese Datendatei zu Sonarqube:

sonar.jacoco.reportPath=target/jacoco-unit.exec 
1

Nach dieser blog können Sie die Erstellung aktivieren jacoco.exec Dateien, indem folgende Plugin Abschnitt zu Ihrem pom.xml (es für mich gearbeitet):

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.1.201405082137</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>prepare-agent</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin>