Witam, mam proste pytanie. Powoli przesiadam sie z ANTa na Mavena. Z tego co widze Maven build lifecycle zawiera faze "test", pomiedzy "compile" a "package". Za wywolywanie testow domyslnie odpowiada surefire plugin.
Moje pytanie to: czy mozna uzywac jednoczesnie surefire i failsafe plugins? Do testow jednostkowych i testow integracyjnych? Probowalem uzyc obu naraz i jednostkowe zostaly uruchomione, potem jetty sie uruchomil i zakladalem, ze wtedy rusza te *IT.java, ale niestety nie.
http://maven.apache.org/ref/3.2.3/maven-core/lifecycles.html tu masz kolejnosć wykonywania poszczególnych faz. Failsafe działa w fazie verify, która jest po fazie package. Odpal mvn clean verify
.
Racja, dzieki, cos pokrecilem z tymi fazami, ale wywolywalem "maven install", wiec chyba powinno zlapac "integration test" i tak :/
Moje klasy i klasy testowe sa w innym projekcie niz ten z ktorego uruchamiam Jetty, ale w pom w konfiguracji dodalem <testClassesDirectory> i sciezke do odpowiedniego (tak mi sie wydaje) miejsca. Wedlug dokumentacji ta sciezka powinna wskazywac na skompilowane klasy testowe mojej aplikacji. Czy tu chodzi o lokacje w strukturze projektu Eclipse? Chyba raczej o ta na dysku :/
Dla testu dodalem prosta usluge @GET i gdy Jetty sie uruchomil wywolalem ja przez przegladarke na odpowiednim porcie. Odpowiedz byla prawidlowa, wiec Jetty sie poprawnie uruchomil i aplikacja pomyslnie "wdrozona". Tylko moj blablaIT.java test sie nie uruchomil, tak jakby failsafe-plugin go nie widzial albo nie rozpoznawal.
Nie ma potrzeby dodawać tego znacznika ponieważ maven i tak skonfiguruje tu domyślne położenie w stosunku do danego modułu. Jedyne co musisz zrobić to w surefire wyłączyć za pomocą exclude
testy pasujące do *ITest
by nie odpalać ich z czasie test
.
Co do tej przeglądarki, to mnie zabolało, bo chyba robisz te testy manualnie (bardzo zły pomysł). Testy integracyjne nie służą do klikania.
Hej, dzieki za odpowiedz. Surefire w ogole jakby nie widzial tych *IT.java testow, nie uruchamia ich w fazie "test" nawet bez exclude.
Przez przegladarke tylko sprawdzalem, czy Jetty na pewno wystartowal (w konsoli jest napisane, ze tak, ale to jeszcze nie znaczy, ze wystartowal :P ) i czy moja aplikacja tam siedzi. Mozna jakos zwiekszyc dokladnosc logow, moze wtedy znajde przyczyne pomijania IT :/
mvn clean install -X
przełacznik -X
włącza debug
Ha, znalazlem - maven szukal klas testowych w zlym miejscu. Do zamkniecia (jesli zamyka sie tutaj tematy). Dzieki za pomoc :)