2012-09-12 15 views
7

początkującym zapytania na Maven - Surefire - Eclipse - JUnitMaven Surefire argumenty przy uruchamianiu testów JUnit poprzez zaćmienia

mam skonfigurowany maven-surefire-plugin w pliku pom mojego projektu, aby przekazać dodatkowe argumenty JVM jako poniżej:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>${maven.surefire.plugin.version}</version> 
      <configuration> 
       <argLine>-d64 -Xms128m -Xmx4096m -XX:PermSize=512m -Duser.timezone=UTC -XX:-UseSplitVerifier</argLine> 
      </configuration> 
     </plugin> 

Kiedy biegnę przypadek testowy tego projektu z Eclipse jako Run As> JUnit test, choć ścieżka klasy jest ustawiony prawidłowo, dodatkowe argumenty podane w argLine nie są wliczone w inwokacji. Muszę iść i ręcznie wprowadzić argumenty pod odpowiednią wersją Debug Configurations. Nie bardzo rozumiem, w jaki sposób JUnit jest świadomy, że musi umieścić słoiki z zakresu testowego w ścieżce klasowej iw jakiś sposób oznacza, że ​​narzędzie JUnit w Eclipse ma świadomość Mavena za pośrednictwem M2E? Jeśli tak, to w jaki sposób możemy go również odczytać argLine. Wiem, że to brzmi bardzo specyficznie - ale jak inni radzą sobie w podobnych sytuacjach?

Z góry dziękuję!

+0

Możesz dodać argumenty programu do konfiguracji uruchamiania Junit, wprowadzając je w zakładce "Argumenty" definicji lanchera w środowisku Eclipse. – HDave

+0

Uwaga musisz oddzielić argumenty do maszyny wirtualnej i argumenty do samego programu. –

+0

Widzę, że IntelliJ robi dokładnie to, czego bym się spodziewał. – Kilokahn

Odpowiedz

9

Eclipse JUnit Launcher (wybierz Run As -> JUnit Test) jest niezależnym biegaczem testowym, który ma swój własny, zdefiniowany cykl życia i budowy i nie ma nic wspólnego z Mavenem, nie odbierze magicznie pom i nie przeczyta konfiguracji i używać ich do napędzania uruchomionego testu.

Jeśli twój projekt jest importowany jako istniejący projekt Maven, użyj Mavena (wybierz Run as -> Maven test) uruchom test JUnit, który podniesie i użyje konfiguracji surefire. To jest dokładnie to samo, co uruchamianie mvn test z linii poleceń, tylko wypisywanie logu uruchamiania w konsoli i nie będzie można korzystać z ładnego czerwonego zielonego interfejsu JUnit UI o numerze .

Mam nadzieję, że to ma sens.

+0

jeśli Eclipse JUnit jest niezależnym testerem, jak rozpoznaje słoiki, które musi umieścić w ścieżce klas w oparciu o zakres testowy? – Kilokahn

+0

Ogólnie rzecz biorąc, jest obsługiwany przez m2eclipse. Podczas importowania istniejącego projektu maveneclipse dominuje w konfiguracji projektu, tj. Generuje plik metadanych Eclipse .project & .classpath, wypełnia ścieżkę klasy projektu (z powodu pom.xml) i itd. Po pomyślnym zaimportowaniu projektu do IDE, m2eclpise prawie wykonał swoją pracę. Stąd, jeśli chcesz, możesz wykonywać swoją pracę (kodowanie/debugowanie/testowanie) bez udziału m2eclipse. AFAIK, nie ma związku między m2eclipse a Eclipse JUnit Launcher. – yorkw

+1

dzięki za informacje! Następnie następnym krokiem będzie sprawdzenie, czy m2eclipse potrafi także odczytać argLine configu pluginów i jakoś wypełnić konfigurację debugowania testów w tym projekcie, aby mieć argumenty z argLine, prawda? A może to za dużo? :) – Kilokahn

Powiązane problemy