JUnit5を使用するようにソリューションをアップグレードしました。次に、@Fast
と@Slow
の2つのタグを持つテスト用のタグを作成しようとしています。最初に、以下のmavenエントリを使用して、デフォルトのビルドで実行するテストを構成しました。これは、mvn test
を実行すると、高速テストのみが実行されることを意味します。コマンドラインを使用してこれをオーバーライドできると思います。しかし、遅いテストを実行するために何を入力するのか理解できません。
私は次のようなものを想定しました....mvn test -Dmaven.IncludeTags=fast,slow
これは機能しません
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<properties>
<includeTags>fast</includeTags>
<excludeTags>slow</excludeTags>
</properties>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.0-M3</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.0.0-M3</version>
</dependency>
</dependencies>
</plugin>
次のように使用できます。
<properties>
<tests>fast</tests>
</properties>
<profiles>
<profile>
<id>allTests</id>
<properties>
<tests>fast,slow</tests>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<properties>
<includeTags>${tests}</includeTags>
</properties>
</configuration>
</plugin>
</plugins>
</build>
このようにして、mvn -PallTests test
すべてのテストから(またはmvn -Dtests=fast,slow test
からでも)開始できます。
プロファイルの使用は可能ですが、groups
とexcludedGroups
は maven surefireプラグイン で定義されたユーザープロパティであり、それぞれJUnit5タグを含めたり除外したりするため必須ではありません。 (また、JUnit 4およびTestNGテストフィルタリングメカニズムでも機能します)。
したがって、slow
またはfast
でタグ付けされたテストを実行するには、次のコマンドを実行できます。
mvn test -Dgroups=fast,slow
Mavenプロファイルで除外タグや包含タグを定義する場合は、それらを伝達し、Mavenのsurefireプラグインでそれらを関連付けるために新しいプロパティを宣言する必要はありません。 Mavenのsurefireプラグインによって定義および期待されるgroups
またはexcludedGroups
を使用するだけです。
<profiles>
<profile>
<id>allTests</id>
<properties>
<groups>fast,slow</groups>
</properties>
</profile>
</profiles>