Maven Surefire-Plug-in mit verschiedenen Gruppen für Test- und Integrationstest Wie man verwendet?
-
03-07-2019 - |
Frage
Ich will verwenden testng mit dem todsichere Plug-in von Maven . Die Idee ist, ein paar Tests mit einer Gruppe integrationTest
zu markieren, und das Plug-in zweimal ausführen. Für Ziel test
mit Ausnahme der Gruppe integrationTest
und Ziel integration-test
einschließlich der Gruppe integrationTest
nur
fand ich einige Material für den Betrieb des Plug-in für beide Ziele und das funktioniert, aber die Gruppe für den zweiten Lauf nicht funktioniert (kein Test ausgeführt wird).
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
führt alle Tests Einheit wie erwartet (mit Ausnahme der Gruppe integrationTest
), aber der zweite Testlauf gerade schreibt:
Beim Laufen Testsuite
Tests laufen: 0, Fehler: 0, Fehler: 0, Skipped: 0, verstrichene Zeit: 0,562 sec
Das Ergebnis mvn test
ist wie erwartet, Tests durchführen und die Gruppe integrationTest
ignoriert.
Lösung
Ich habe es - Konfiguration Implementierung irritierend
<excludedGroups/>
nicht außer Kraft setzen <excludedGroups>integrationTest</excludedGroups>
. Sie müssen jede (unbekannt) Gruppe angeben stattdessen <excludedGroups>none</excludedGroups>
zum Beispiel.
Andere Tipps
Die Failsafe-Plugin ist der beste Weg, dies zu tun (es kann nicht verfügbar gewesen, wenn Sie diese Frage gestellt). Es fügt eine Integrationstestphase auf den Build-Lebenszyklus. Es ermöglicht Ihnen, Auf- und Abbau-Aktivitäten laufen vor und nach den Tests zu haben, die für die Verwaltung eines eingebetteten Behälter, beispielsweise nützlich ist.