私が実行maven clean install
しているときは、常にすべてのテストを実行しますsrc/test/java
。すべてのテストをスキップする方法はありますか?テストなしで単純なビルドを実行するだけです。
私は自分のテストを入れたいのですsrc/test/java
が、maven にテストを実行しないように伝えたいのです。私はインターネットでそのようなものを探していましたが、答えを見つけることができませんでした。
これを行う方法はありますか?
使い方も選べます
mvn install -Dmaven.test.skip
Maven のWeb サイトから:
どうしても必要な場合は、maven.test.skip プロパティを使用してテストのコンパイルをスキップすることもできます。maven.test.skip は、Surefire、Failsafe、および Compiler Plugin によって尊重されています。
言われているように、テストソースをコンパイルすることさえしません。
http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.htmlから:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
テストをいつ実行するかを管理する私のお気に入りの方法は、という名前の Maven 変数を作成し、skip-tests
デフォルトで に設定することtrue
です。次に、その変数を次のように使用できます。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>${skip-tests}</skipTests>
</configuration>
</plugin>
このようにして、ビルド時に変数を渡すだけで、-Dskip-tests=false
それらを実行したくない場合に使用できます。これは、統合テストと単体テストがあり、1 つの変数だけで両方のテスト セットを実行または無効にしたい場合に最も便利です。
これを使って
mvn clean install -DskipTests
単体テストには Surefire を使用し、統合テストにはFailsafeを使用します。
すべてのテストをスキップするには:
mvn clean package -DskipTests
Failsafe テストだけをスキップするには:
mvn clean package -DskipIT
Surefire だけをスキップするには、もちろんテスト クラスをコンパイルした後、Failsafe プラグインの統合テスト ゴールを明示的に呼び出す必要があります。
mvn clean test-compile failsafe:integration-test
私はこれが最も簡単だと思います:mvn clean package -Dmaven.skip.tests=true
これは、pomを変更する必要がないため、プロジェクトを変更する必要がないため、使用するアプローチだと思います。