surefireテストのみをスキップする最も簡単な方法は、surefire を次のように構成することです(ただしフェイルセーフではありません)。
<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>
これによりmvn verify -Dskip.surefire.tests
、テストを実行することができ、フェイルセーフではなく、確実にテストがスキップされます。また、統合前および統合後を含む他のすべての必要なフェーズを実行し、統合テストが失敗した場合にMavenビルドverify
を実際に失敗させるために必要な目標も実行します。
これにより、テストをスキップする必要があることを指定するために使用されるプロパティが再定義されるため、canonicalを指定した場合-DskipTests=true
、surefireはそれを無視しますが、フェイルセーフはそれを尊重します。これは、特にそのフラグをすでに指定している既存のビルド/ユーザーがいる場合、予期しない可能性があります。簡単な回避策がデフォルトになるように思われるskip.surefire.tests
の値にskipTests
あなたの中に<properties>
ポンポンのセクション:
<properties>
<skip.surefire.tests>${skipTests}</skip.surefire.tests>
</properties>
必要に応じて、skip.failsafe.tests
フェイルセーフのために呼び出される類似のパラメーターを提供できますが、私はそれが必要だとは思いませんでした-単体テストは通常、早い段階で実行され、統合テストではなく単体テストを実行したい場合は、実行しますtest
代わりの相verify
相。あなたの経験は変わるかもしれません!
これらのskip.(surefire|failsafe).tests
プロパティは確実に確実にフェイルセーフコード自体に統合する必要がありますが、「わずかな違いを除いてまったく同じプラグイン」の精神にどれほど違反するかはわかりません。
maven.test.skip
かskipTests
?