Przeniosłem swoją pracę z pojedynczej maszyny Hudson do wielo-niewolniczego środowiska Jenkins, a teraz zasięg JaCoCo już nie działa."Pokrycie projektu ustawione jest na 0%" - JaCoCo i Sonar w Jenkins z Ant
robocza (stary): Hudson 2.0.1, Jenkins Sonar Plugin 1.7.1, Sonar 2.1.2
BROKEN (nowy): Jenkins 1,446, Jenkins Sonar Plugin 1.7.2, Sonar 2.1.2
Moja praca w Hudson nosi nazwę Pinnacle i była używana na jednym serwerze Hudson z Sonarem na tej samej maszynie. Ustawiłem moją (NIE MAVEN) kompilację wykonując następujące czynności.
1) Dodano Ant cel mojego build.xml zwanego test-with-coverage
2) skonfigurowane zadanie Pinnacle w Hudson, aby "wywołać autonomiczny Sonar Analysis" z tych właściwości:
sonar.projectKey=com.skyboximaging:pinnacle
sonar.projectName="Pinnacle"
sonar.projectVersion=1.0
sources=Pinnacle/src/java
tests=Pinnacle/test/java
binaries=Pinnacle/classes
sonar.jacoco.reportPath=Pinnacle/jacoco.exec
sonar.jacoco.antTargets=test-with-coverage
(Należy pamiętać, że kod jest wyrejestrowany w katalogu Pinnacle w obszarze roboczym pracy Jenkins.)
3) skonfigurowanego Sonar „Ogólne ustawienia”, by użyć JaCoCo dla pokrycia kodu
Wszystko działało pięknie!
Ale w nowym środowisku Jenkins, widzę ten błąd w Jenkins zbudować wyjście:
23:15:17.863 INFO Sensor JaCoCoSensor...
23:15:17.868 INFO Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/workspace/Pinnacle/Pinnacle/jacoco.exec
Ten plik nie istnieje na niewolnika gdzie budować biegł. (Katalog/var/lib/jenkins/workspace/Pinnacle/Pinnacle istnieje istnieje.)
Wygląda na to, że wszystkie inne czujniki (FindBugs, PMD itp.) Działają poprawnie. Po prostu JaCoCo jest zepsute.
Czy Sonar/JaCoCo działają nawet w środowisku multi-slave Jenkins?
Podejrzewam, że zadanie AN test-with-coverage
nie jest uruchamiane. W jaki sposób Sonar lokalizuje plik build.xml? Czym różnią się stare i nowe instalacje?
dzięki! Wskaźnik do ustawienia sonar.jacoco.reportPath był ostatnim elementem, który potrzebowałem, aby uzyskać mój sonar z wieloma projektami, aby poprawnie załadować dane dotyczące zasięgu. –
@Jason: jeśli używam raportów sahi zamiast junit, czy mogę używać raportów sahi (które są w html) w sonar.surefire.reportsPath – vinod