Ich nehme an, Sie versuchten die test
Option (Kleinbuchstaben) des Maven Surefire Plugins, um einen bestimmten Test aufzurufen, den Surefire nicht im ersten Modul des Reaktor Build finden konnte und daher fehlschlägt.
Ich nehme auch an Integrationstests werden von der Maven Failsafe Plugin ausgeführt. Wenn nicht, sollten sie, wie in der offiziellen Dokumentation erwähnt:
Das Failsafe-Plugin wurde entwickelt, um Integrationstests durchzuführen, während das Surefire-Plugin für Unit-Tests ausgelegt ist. ... Wenn Sie das Surefire-Plugin zum Ausführen von Tests verwenden, wird der Build bei einem Testfehler in der Phase integration-test
angehalten und Ihre Integrationstestumgebung wurde nicht ordnungsgemäß abgebaut. .. Das Failsafe-Plugin wird den Build während der integration-test
-Phase nicht abbrechen, wodurch die post-integration-test
-Phase ausgeführt werden kann.
Um es kurz zu machen: es ist sicherer und viel robuster zu tun.
Obwohl die Plugin-Konfiguration Eintrag für das Maven Failsafe Plugin auch test
ist, ist die entsprechende Befehlszeilenoption it.test
, so sollten Sie stattdessen laufen:
mvn clean install -Dit.test=SampleIT
Wo SampleIT
ist ein Integrationstest (beachten Sie den Standard IT
Suffix, recognized by default von Failsafe.
Die offizielle Running a Single Test Dokumentation auch weitere Details Tests auf offene Einzel Integration bietet.
Hinweis: Der obige Aufruf funktioniert, wenn Sie keine anderen Integrationstests in anderen Modulen des Builds durchführen. Andernfalls wird es nicht früher gefunden (bevor das betreffende Modul gefunden wird).
Wenn Sie Surefire zum Ausführen des betreffenden Integrationstests verwenden (Sie sollten dies auch nicht) oder mehrere Module mit Integrationstests ausführen, sollten Sie dann ein Profil im betreffenden Modul konfigurieren, das sich um diesen spezifischen Aufruf kümmert , so etwas wie, wie folgend:
<profiles>
<profile>
<id>run-single-it-test</id>
<activation>
<property>
<name>single.it.test</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<test>${single.it.test}</test>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Und dann die Build aufrufen, wie folgend:
mvn clean install -Dsingle.it.test=SampleIT
als solche Maven wird für die single.it.test
pro auf die Existenz eines Wertes activate the profile basiert Perty und übergeben Sie es an die test
Eigenschaft des Failsafe Plugins (oder der Surefire, wenn es der Fall war), wird Failsafe jeden anderen Integrationstest für diese Ausführung ignorieren und andere Module würde keine Auswirkungen (ignorieren diese Eigenschaft) leiden.