Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 2 Nächste Version anzeigen »

Code Coverage des Nuclos Builds und Integrationstests-Laufs wird mit folgenden Schritten erreicht.

  1. JaCoCo Weaving Aufruf (jacoco-maven-plugin) nach JavaC aber bevor AspectJ den Bytecode noch weiter manipuliert. Die so genannte Offline Variante.
  2. Einbindung der JaCoCo Runtime als Dependency in allen Maven Modulen.
  3. Ausführung der Unit-Tests wie auch Integrationstests mit der Anweisung alle Coverage Daten in ein File zu schreiben: NUCLOS_GIT_ROOT/target/jacoco.exec
  4. JaCoCo Report Erstellung für alle angeforderten Maven Module mittels eines gesonderten Maven Aufrufs: mvn jacoco:report@coverage-report
  5. (Sonar Code Analyse verwendet automatisch die von JaCoCo generierten Reports, wenn vorhanden)

Details zum Ablauf

zu 1-3.) Build und Testausführung

Auch wenn das Weaving zur Laufzeit (Online) die offiziell empfohlene Variante ist, so hatten wir bei Nuclos damit keinen Erfolg. Ein Grund dafür dürfte AspectJ sein und möglicherweise auch Spring Weaving.
Zur Aktivierung muss nur das Maven Profil coverage verwendet werden. Hier ein Beispiel Aufruf zum Bau und zur Ausführung der Tomcat-Serverintegrationstests samt JaCoCo Datensammlung:

mvn clean verify -Dlocale=de_DE -Dtest.webclient.skip=true -P coverage,test,test-tomcat

Die von JaCoCo gesammelten Daten aller Tests findet man im Anschluss unter NUCLOS_GIT_ROOT/target/jacoco.exec

zu 4.) JaCoCo Report

Da das Integrationstest-Mavenmodul den Löwenanteil der Coverage für die anderen Module sammelt, können die JaCoCo Reports für die einzelnen Module erst nach dem Testlauf, unter Verwendung der NUCLOS_GIT_ROOT/target/jacoco.exec, erzeugt werden.
Ein gesonderter Maven Aufruf ist hierfür nötig:

mvn jacoco:report@coverage-report

Im Anschluss sind die JaCoCo Reports zu finden unter MAVEN_MODUL/target/site/jacoco der unterschiedlichen Maven Module.

zu 5.) Sonar Analyse unter Verwendung der JaCoCo Reports

Die Einstellungen bezüglich Sonar in der Nuclos Maven pom.xml schalten die Coverage Auswertung zur Code Analyse automatisch hinzu:

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=nuclos_nuclos

Die Sonar Analyse ist im Anschluss in der Cloud zu finden unter: https://sonarcloud.io/project/overview?id=nuclos_nuclos

(Ein Hochladen setzt natürlich eine Berechtigung voraus die mit einer Umgebungsvariable SONAR_TOKEN gesetzt werden muss)

  • Keine Stichwörter