2011-06-21 15 views
5

Mam pracę w Jenkins, która jest uruchamiana każdej nocy. Zadania wykonywane podczas tej kompilacji to: kompilacja, testy jednostkowe, testy integracyjne (które są tylko testami JUnit, które są dłuższe niż "prawdziwe testy jednostkowe" do wykonania) i analiza jakości sonaru.Dlaczego moja praca Sonar Jenkins nigdy nie staje się niestabilna, nawet przy niepowodzeniach testowych?

Kiedy test się nie powiedzie, praca jest uznawana za pomyślną i dlatego nie jest wysyłana wiadomość e-mail z powiadomieniem o tym błędzie.

Użyte polecenie Maven to mvn clean install sonar:sonar. Usunięcie celu install niczego nie zmienia.

Co jest nie tak z tym?

Czy istnieje sposób na uzyskanie oczekiwanego zachowania (tj. Niestabilną kompilację, gdy test się nie powiódł) z tylko jednym zadaniem Jenkins, lub powinienem utworzyć dwa zadania, jeden dla całej "części Java" (kompilacja, test jednostkowy i testy integracyjne) i jeden do analizy Sonaru?

Używamy Maven 2.0.9, Java 1.6, Sonar 2.8, Jenkins 1.413.

+0

definiujesz -Dmaven.test.failure.ignore = true w dowolnym miejscu? – oers

+0

@Oers Wcale nie. Dokładne polecenie Mavena to 'mvn -U -up -e clean install -Dsonar.branch = XXX - ustawienia C: \ xxx \ jenkins-setting.xml' – romaintaz

+0

Jenkins wydaje się ustawić tę właściwość: http://stackoverflow.com/questions/1004912/hudson-build-successful-with-unit-test-failures – oers

Odpowiedz

0

Jenkins wydaje się ustawić tę właściwość: Hudson build successful with unit test failures

z nieruchomości (-Dmaven.test.failure.ignore = false), gdy wystąpi awaria testy, kompilacja zatrzyma.

Jest jenkins plugin dla sonar: To wydaje się analizować nawet jeśli testy nie powiedzie: http://jira.codehaus.org/browse/SONARPLUGINS-461

W mojej instalacji sonaru, biegnę oddzielne testy z sonaru i ponownego użycia junit/raporty murowany. W ten sposób mogę kontrolować testy niezależnie od sonaru.

+0

Naprawdę nie jestem pewien, czy mogę wykonać tylko jedno zadanie Jenkinsa, aby zrobić wszystko. Ustawienie właściwości '-Dmaven.test.failure.ignore' na 'false' nie pomoże mi, ponieważ zatrzyma kompilację i test na pierwszym module z błędem. A ponieważ pracuję z projektem z wieloma modułami, to nie będzie działać na innych modułach ... – romaintaz

+1

W końcu udało mi się użyć wtyczki Sonar Jenkins (był błąd z Maven 2.0.9 i tą wtyczką, która ignoruje moje '- -ustawienia parametrów) i status jest teraz poprawnie obsługiwany przez Jenkinsa. – romaintaz