2015-02-25 19 views
5

Nie zrobiłem wiele z Mavenem, ale rozumiem podstawy. Używamy Tycho do budowania wtyczek RCP i zastanawiam się, dlaczego Tycho używa fazy integration-test do wykonania testów w pakiecie.Czy jest możliwe skonfigurowanie tycho-surefire do działania w fazie testowej?

Czy można powiązać niektóre typy testów z fazą test Maven dla Tycho zamiast z fazą integration-test?

Jeśli tak, w jaki sposób?

+0

To powinno być możliwe, czy możesz pokazać odpowiednie części swojego pom.xml? – Behe

+0

@Behe: Dla użytkowników Tycho jest oczywiste, że to pytanie dotyczy [typu Tycho 'eclipse-test-plugin' typu opakowania] (http://wiki.eclipse.org/Tycho/Packaging_Types#eclipse-test-plugin) . – oberlies

Odpowiedz

6

Tycho wykonuje testy w kontenerze OSGi, co wymaga, że ​​skompilowane klasy są już spakowane jako pakiety OSGi. Pakowanie odbywa się tylko w fazie package, więc testy należy wykonać później. Dlatego domyślnie tycho-surefire-plugin wykonuje testy w fazie integration-test.

Jeśli możesz uruchomić testy jako "JUnit Test" w Eclipse (zamiast jako "JUnit Plug-in Test"), twój kod i żadna z twoich zależności nie wymaga kontenera OSGi. W takim przypadku możesz również uruchomić testy przy pomocy maven-surefire-plugin. Ta wtyczka domyślnie działa w fazie test. Znalazłem this blog, który opisuje konfigurację niezbędną do wykonania tej czynności.

+0

Dziękuję, to ma sens. Pozostaje mi jednak inne pytanie. Czy to ma znaczenie, czy uruchamiasz unittests jako wtyczki (czy mam na myśli pozwolić tymo je wykonywać), czy też jako regularne operacje (niech będą wykonywane w fazie testowej bez opakowania OSGi)? Jak w. Czy mogę uruchomić unittests używane do testowania kodu w pewnej wtyczce, w fazie testowej, bez powodowania jakichkolwiek problemów (pod względem nieukrywania niektórych funkcji lub nie)? Zaznaczę to jako odpowiedź. Chociaż chciałbym wiedzieć, czy można to zrobić bez skutków ubocznych. – Byebye

+1

To naprawdę zależy od kodu - ale możesz po prostu go wypróbować. Jeśli twoje testy wciąż mijają, prawdopodobnie nie potrzebujesz OSGi. – oberlies