2010-01-05 12 views
21

In meinem Projekt muss ich Cobertura Code Coverage Bericht von Hudson erstellen Maven erstellen.
In Hudson habe ich das Cobertura Code Coverage Plugin hinzugefügt.
Ich brauche die vollständigen Modifikationsschritte von pom.xml.So generieren Sie Cobertura Code Coverage Bericht mit Maven von Hudson

+0

Vorsicht vor der Inkompatibilität von Java 7! Eine mögliche [Lösung wird hier gezeigt] [1]. [1]: http://stackoverflow.com/questions/7010665/testng-emma-cobertura-coverage-and-jdk-7-result-in-classformaterror-and-verif/9583305#9583305 – user1050755

Antwort

30

Haben Sie versucht, das zu Ihrer pom.xml in der reporting Sektion hinzuzufügen?

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>cobertura-maven-plugin</artifactId> 
    <configuration> 
     <formats> 
      <format>html</format> 
      <format>xml</format> 
     </formats> 
    </configuration> 
</plugin> 

Vollständige Konfigurationsschritte finden Sie unter here.

+0

Ich habe die Konfiguration im Abschnitt 'Execute cobertura nur von hudson using profiles' unter 'http://wiki.hudson-ci.org/display/HUDSON/Cobertura+Plugin' in meiner pom.xml hinzugefügt Auch die configuraiton unter 'Reporting' Tag für Cobertura-Maven-Plugin Aber während der Build von Hudson - ich bekomme die folgende Ausnahme Skipping Cobertura Berichterstattung als Build war nicht INSTABLE oder besser ... Abschluss: FAILURE Ich habe das Plugin "Veröffentlichen Cobertura Coverage Report" in Hudson konfiguriert. Fehle ich irgendwelche Schritte während der Konfiguration? – stackoverflowsk

+1

überprüfen Sie Ihre Protokolle, es sollte einige Fehlermeldungen angezeigt werden. auch läuft mvn site cobertura: cobertura auf einem lokalen checkout könnte helfen. Auch als Hinweis, für mich, nur "coverta: cobertura" als Ziel zu laufen war genug, keine Pom Änderungen waren notwendig (möglicherweise, weil eine obere Ebene Pom es bereits enthalten ...) – rogerdpack

7

Um Cobertura während der Paketphase laufen, tun

<plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.5.2</version> 
      <configuration> 
       <formats> 
        <format>xml</format> 
       </formats> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>cobertura</goal> 
        </goals> 
       </execution> 
      </executions> 
    </plugin>   

Heres ein Beispiel für pom

http://macgyverdev.blogspot.com/2011/04/development-environment-for-google-app.html

Und hier wie in Hudson http://macgyverdev.blogspot.com/2011/04/hudson-continous-integration-for-google.html

1

Cobertura nicht integrieren scheinen tatsächlich mit Hudson zu arbeiten.

Ich habe ein Projekt, bei dem die Befehlszeile ausgeführt wird: MVN Rein Paket

baut eine Abdeckung Bericht einen genauen Bericht Abdeckung mit einem durchschnittlichen Flächengewicht von etwa 78% und 74% Linie Zweig erzeugt.

Das Ausführen der gleichen Ziele auf einem Hudson-Server führt zu einem Abdeckungsbericht mit 0% 0%.

Leider scheint die Jira-Seite für das Plugin niemandem zu erlauben, Probleme zu veröffentlichen, so dass dieses Problem noch nicht dem Team gemeldet wurde.

20

Hudson benötigt ein Sie, um die coverage.xml Datei zu generieren. Um dies zu tun, ohne Ihre pom.xml zu ändern, können Sie verwenden:

mvn cobertura:cobertura -Dcobertura.report.format=xml 
+1

Auf meinem System wird der '' - Abschnitt des Plugins nicht berücksichtigt. Allerdings funktioniert es, wenn ich den obigen '-Dcobertura.report.format' Parameter in der Zeile der Ziele spezifiziere. Thx amcknight – matthaeus

+0

Große Antwort! Danke –

+0

Gibt es eine Möglichkeit, Cobertura-Berichte über 'mvn clean install'-Befehl statt' mvn cobertura: cobertura' zu generieren, wenn ich die 'Ausführungen'-' Phase' als 'test' und' Ziel' als 'cobertura' ändere, es funktioniert, aber es läuft Testfälle zweimal, irgendeine Idee zu diesem Thema? –