Surefire テストのみをスキップする最も簡単な方法は、次のように Surefire (ただしfailsafe ではない)を構成することです。
<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 はそれを無視しますが、failsafe はそれを尊重します。これは、特に既存のビルド/ユーザーがそのフラグを指定している場合は特に、予期しない場合があります。簡単な回避策は、pom のセクションの値skip.surefire.tests
をデフォルトに設定することです。skipTests
<properties>
<properties>
<skip.surefire.tests>${skipTests}</skip.surefire.tests>
</properties>
必要に応じて、フェイルセーフと呼ばれる類似のパラメーターを指定できますが、必要であるとskip.failsafe.tests
は思いませんでした。単体テストは通常、初期段階で実行されるため、単体テストを実行したいが統合テストは実行したくない場合は、実行しますフェーズではtest
なくverify
フェーズ。あなたの経験は異なるかもしれません!
これらのskip.(surefire|failsafe).tests
プロパティはおそらく確実な/フェイルセーフ コード自体に統合されるべきですが、「わずかな違いを除いてまったく同じプラグインである」という精神にどの程度違反するかはわかりません。