Mein Setup ist:
Ich habe folgendes Projekt:
Was der Prozess im Moment ist:
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 werdenJaCoCo 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?
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?
Sie können sich den Blogeintrag ansehen, den ich vor ein paar Monaten geschrieben habe: Ссылка
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.