2013-03-04 9 views
8

Moja firma ostatnio zmieniła się na maven, a przejście było bardzo płynne, ale jest jedna, która mnie denerwuje. Tak więc wcześniej, w czasach przed mavenem, można było zobaczyć, który test jest prowadzony w danej klasie (f.e, jeśli miałeś 40 testów jednostkowych na zajęciach, a drugi test się nie powiódł). Teraz wygląda to tak: wyświetla nazwę testowanej klasy i to wszystko. Musisz poczekać, aż wszystkie testy zostaną wykonane w klasie, aby faktycznie zobaczyć wyniki (możesz zatrzymać test, a on pokaże postęp do punktu, w którym się zatrzymałeś, ale nic nie zobaczysz przed ich zatrzymaniem). To bardzo denerwujące i czasochłonne w niektórych testach integracyjnych.Maven, test jednostki wyświetlającej aktualnie działający

Jeśli ktoś zna rozwiązanie tego, byłbym wdzięczny. Z góry dziękuję.

Odpowiedz

5

Możesz skonfigurować detektor, który wydrukuje bieżący test na konsoli. Patrz sekcje Using custom listeners and reporters z junit maven-surefire-plugin documentation lub testng maven-surefire-plugin documentation

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <configuration> 
     <properties> 
     <property> 
      <name>listener</name> 
      <value>com.mycompany.MyResultListener,com.mycompany.MyResultListener2</value> 
     </property> 
     </properties> 
    </configuration> 
    </plugin> 
+1

@simleo. Chciałbym, aby link został zmieniony, aby odzwierciedlić fakt, że wskazuje on konkretnie stronę JUnit. Jest jeszcze jedna strona z tymi samymi informacjami, które umożliwiają dodanie słuchacza do konfiguracji [Maven Surefire TestNG] (http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html) –

+0

@JohnChesshir I added połączenie. – SpaceTrucker

1

Jeśli używasz JUnit, ty could use a @Rule for this.

Jeśli chcesz, aby był stosowany tylko wtedy, gdy Maven wykonuje testy, użyj właściwości System, aby włączyć/wyłączyć wyjście.

+0

Oto wątek na temat używania Junit @ Rule's, aby wydrukować bieżącą nazwę testu: http://stackoverflow.com/q/473401/32453, chociaż musisz dodać ją do pewnej testowej wspólnej klasy bazowej, jeśli chcesz więcej niż jeden test jednostkowy na wyjście [?] – rogerdpack