Ich fand, dass der einfachste Weg, nur todsichere Tests zu überspringen, darin besteht, todsicher ( aber nicht ausfallsicher ) wie folgt zu konfigurieren :
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<!-- skips surefire tests without skipping failsafe tests.
Property value seems to magically default to false -->
<skipTests>${skip.surefire.tests}</skipTests>
</configuration>
</plugin>
Auf diese Weise können Sie laufen mvn verify -Dskip.surefire.tests
und nur todsichere, nicht ausfallsichere Tests werden übersprungen. Es werden auch alle anderen erforderlichen Phasen ausgeführt, einschließlich Vorintegration und Nachintegration , und es wird auch das verify
Ziel ausgeführt, das erforderlich ist, um Ihren Maven-Build tatsächlich fehlzuschlagen, wenn Ihre Integrationstests fehlschlagen.
Beachten Sie, dass hierdurch die Eigenschaft neu definiert wird, mit der angegeben wird, dass Tests übersprungen werden sollen. Wenn Sie also das Kanonische angeben, -DskipTests=true
wird es von safefire ignoriert, aber fehlersicher wird es respektiert, was unerwartet sein kann, insbesondere wenn bereits Builds / Benutzer dieses Flag angeben . Eine einfache Problemumgehung scheint darin zu bestehen, standardmäßig skip.surefire.tests
den Wert von skipTests
in Ihrem <properties>
Abschnitt des POM zu verwenden:
<properties>
<skip.surefire.tests>${skipTests}</skip.surefire.tests>
</properties>
Wenn nötig, können Sie einen analogen Parameter angeben, der als ausfallsicher bezeichnet wird. skip.failsafe.tests
Ich habe dies jedoch nicht für erforderlich befunden, da Unit-Tests normalerweise in einer früheren Phase ausgeführt werden. Wenn ich Unit-Tests, jedoch keine Integrationstests ausführen möchte, würde ich sie ausführen die test
Phase anstelle der verify
Phase. Ihre Erfahrungen können variieren!
Diese skip.(surefire|failsafe).tests
Eigenschaften sollten wahrscheinlich in den todsicheren / ausfallsicheren Code selbst integriert werden, aber ich bin mir nicht sicher, inwieweit dies gegen das Ethos "Sie sind bis auf einen winzigen Unterschied genau das gleiche Plugin" verstoßen würde.
maven.test.skip
oderskipTests
?