次のようなものです。特定のパッケージのテストをスキップするように指示する方法はありますか?
確かに私のDAOテストをスキップする方法があります。スイートを定義するオーバーヘッドを避けようとしています。
CIでは、すべてのテストを実行し、毎晩5分間の「高速」テストのみを実行するSCMのアンケートが必要です。
mvn -DskipPattern=**.dao.** test
次のようなものです。特定のパッケージのテストをスキップするように指示する方法はありますか?
確かに私のDAOテストをスキップする方法があります。スイートを定義するオーバーヘッドを避けようとしています。
CIでは、すべてのテストを実行し、毎晩5分間の「高速」テストのみを実行するSCMのアンケートが必要です。
mvn -DskipPattern=**.dao.** test
確かに、問題なし:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<excludes>
<!-- classes that include the name Dao -->
<exclude>**/*Dao*.java</exclude>
<!-- classes in a package whose last segment is named dao -->
<exclude>**/dao/*.java</exclude>
</excludes>
</configuration>
</plugin>
リファレンス:>Inclusions and Exclusions of Tests
私はSeanの答えを広げてください。これは、あなたがpom.xml
に設定したものです:
<properties>
<exclude.tests>nothing-to-exclude</exclude.tests>
</properties>
<profiles>
<profile>
<id>fast</id>
<properties>
<exclude.tests>**/*Dao*.java</exclude.tests>
</properties>
</profile>
</profiles>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>${exclude.tests}</exclude>
</excludes>
</configuration>
</plugin>
次にCIにあなたは、このようにそれらを起動します。それだ
mvn -Pfast test
。
コマンドラインを使用してテストを除外することは可能です。除外するには!
を使用します。
注:動作するには確かに2.19.1以降のバージョンが必要です。
例:
これはTestHCatLoaderEncryption
mvn install '-Dtest=!TestHCatLoaderEncryption'
を実行しませんが、パッケージを除外する:
mvn install '-Dtest=!org.apache.hadoop.**'
も同様に正のフィルターと組み合わせることができます。フォローインは0テストを実行します:
mvn install '-Dtest=Test*CatLoaderEncryption,!TestHCatLoaderEncryption'
6年後、surefire.excludesはまだコマンドラインで動作しません。 –