Wie mache ich Jenkins, Sonar und das JaCoCo Plugin zusammen für Eclipse Tycho Plugin Projekte (oder vielleicht Cobertura)?

8

Mein Setup ist:

  • Jenkins 1.448
  • Sonar 2.13
  • Jenkins Sonar Plugin 1.72
  • eine MySql-Datenbank für Sonar

Ich habe folgendes Projekt:

  • Eclipse-Plugin-Projekt
  • mit Maven
  • mehrere Module (Eltern-Maven-Projekt, Quell-Plugin-Projekt, Test-Fragment-Projekt)
  • ein einfacher JUnit-Test, der eine Klasse des Quell-Plugin-Projekts testet

Was der Prozess im Moment ist:

  • Jenkins überprüft das Elternprojekt von SVN
  • Jenkins erstellt das Projekt und seine Module mit Maven und Tycho
  • Jenkins verwendet Surefire, um die Tests auszuführen und einen Bericht zu erstellen
  • Jenkins verwendet das Jenkins Sonar-Plugin, um mvn sonar: sonar zu starten, um Code-Analyse auszuführen
  • Statische Code-Analyse wird für jedes Modul durchgeführt
  • JaCoCo schlägt fehl

Sonar verfügt über Statistiken zur statischen Codeanalyse, und der Testerfolg wird angezeigt. Das einzige, was fehlt, ist JaCoCos Codeabdeckung ... oder vielleicht sogar Coberturas Codeabdeckung.

Ich interessiere mich nicht wirklich an diesem Punkt, ich möchte nur eines dieser Dinge Code Coverage Ergebnisse produzieren.

Cobertura scheint nicht in der Lage zu sein, Ergebnisse zu liefern, möglicherweise auch deshalb   - Es kann den Code nicht instrumentieren   - Es sucht nach dem instrumentierten Code an der falschen Stelle   - Es kann nicht mit Tycho oder der separaten Quelle / Testcode-Setup

fertig werden

JaCoCo sollte in der Lage sein, die Codeabdeckung im laufenden Betrieb zu "sehen", aber seine Ausgabe ist

%Vor%

Was mache ich falsch? Muss ich JaCoCo irgendwo in meiner pom.xml aktivieren? Brauche ich todsicher? Was muss ich tun, um Cobertura zu benutzen?

    
danowar 20.01.2012, 16:01
quelle

3 Antworten

3

Ich habe eine Seite mit einem Beispiel für ein Tycho-Multi-Modul-Projekt gefunden (separate Quell- und Testprojekte). Nach dem Kopieren einiger Eigenschaften und Konfigurationen ...

es scheint, dass ich jetzt ein maven jacoco plugin verwende, um den jacoco code coverage report zu erstellen und dann Sonar zu sagen, wo ich den report finden und wiederverwenden kann.

Warum gibt es so gut wie keine Dokumentation dafür? Oder warum ist es so schwer zu finden?

Ссылка

    
danowar 27.01.2012 14:50
quelle
3

Sie können sich den Blogeintrag ansehen, den ich vor ein paar Monaten geschrieben habe: Ссылка

    
xavier.seignard 06.03.2012 23:08
quelle
0

Wenn der Code fertig instrumentiert ist, muss todsichere Version mit dem spezifischen Code ausgeführt werden, den die Instrumentierung generiert. Ich habe Ihr Setup nicht verwendet, aber Ihr Fehler scheint mir sehr ähnlich zu sein, als ich Clover Code Coverage zum Laufen brachte. Ich musste unbedingt darauf hinweisen, dass Tests aus dem Verzeichnis ausgeführt wurden, in dem der kompilierte instrumentierte Code gespeichert war.

Außerdem habe ich festgestellt, dass die Option -X in der Maven-Befehlszeile von unschätzbarem Wert ist, da das Lesen der Protokolle jedes Plugins während eines Builds genau anzeigt, wo es nach dem sucht, was es sucht.

Bearbeiten:

Instrumentierter Code muss kompiliert werden, bevor todsichere Datei dagegen laufen kann. Daher sollten Sie auf das Post-Compilierungsverzeichnis und nicht auf die instrumentierte Quelle selbst verweisen.

    
SpellingD 20.01.2012 20:03
quelle