Ich möchte testng mit der Surefire plug-in von Maven verwenden. Die Idee besteht darin, einige Tests mit einer Gruppe integrationTest
zu taggen und das Plug-in zweimal auszuführen: für das Ziel test
mit Ausnahme der Gruppe integrationTest
und für das Ziel integration-test
einschließlich der Gruppe integrationTest
nur.Wie funktioniert das Maven Surefire Plug-In mit verschiedenen Gruppen für Test und Integrationstest?
Ich fand einige material für das Ausführen des Plug-Ins für beide Ziele und das funktioniert, aber die Gruppe für den zweiten Lauf funktioniert nicht (kein Test wird ausgeführt). Hier
ist die Plug-in-Konfiguration in dem Build-Elemente meiner pom.xml
:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>integrationTest</excludedGroups>
<reportFormat>brief</reportFormat>
<trimStackTrace>true</trimStackTrace>
<useFile>false</useFile>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<groups>integrationTest</groups>
<excludedGroups/>
<reportsDirectory>${project.build.directory}/surefire-reports/integration</reportsDirectory>
</configuration>
</execution>
</executions>
</plugin>
Jede Idee? mvn integration-test
läuft alle Tests Einheit wie erwartet (mit Ausnahme der Gruppe integrationTest
), aber der zweite Testlauf schreibt nur:
Lauftestsuite
Tests laufen: 0, Fehler: 0, Fehler: 0, Skipped: 0, die verstrichene Zeit : 0,562 sec
Das Ergebnis mvn test
wie erwartet wird, ignoriert integrationTest
wird Tests durchführen und die Gruppe.
excludedGroups funktioniert nicht mit TestNG 5.14.1 - verwenden Sie stattdessen 5.14.2! –
Mit Surefire 2.18.1 und JUnit 4.10 bekomme ich den Fehler '[ERROR] Fehler beim Ausführen des Ziels org.apache.maven.plugins: maven-surefire-plugin: 2.18.1: Test (Integrationstest) am Projektbeispiel- Projekt: Ausführungsintegrationstest von Ziel org.apache.maven.plugins: maven-surefire-plugin: 2.18.1: Test fehlgeschlagen: Es gab einen Fehler im gegabelten Prozess [FEHLER] java.lang.RuntimeException: Kann nicht Lastkategorie: keine'. Es scheint, dass die Gruppe, mit der Sie überschreiben, mindestens existieren muss, auch wenn sie nirgends verwendet wird. Ich tue dies mit einer 'öffentlichen Schnittstelle SystemTest erweitert IntegrationTest' und schließe * diese * Kategorie aus. – orlade