Mavenでいくつかの統合テストを実行し、次のようなものを使用してカテゴリ別にグループ化することを検討しています:
インターフェース:
package com.path.for.testing;
public interface SlowTests {
}
テスト クラス:
import com.path.for.testing.SlowTests
@Category(SlowTests.class)
public class SlowTest {
...
}
Pom ファイル:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
...
<profiles>
...
<profile>
<id>functional-test-slow-tests</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<groups>com.path.for.testing.SlowTests</groups>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
そして、次のように実行します: mvn clean install -P Functional-test-slow-tests
私の問題は、実行すると、指定されたテストだけでなく、すべてのテストを循環しているように見えることです。分類は統合テストでは機能しませんか? それとも私は何か間違ったことをしていますか?リクエストに応じて、より多くの情報を更新します。この問題に関するヘルプや指示は本当にありがたいです。私はこれが初めてで、明らかな何かが欠けている可能性が非常に高いです。ありがとう。
User944849 に応じて編集します。
-X 引数を指定して実行すると、フェイルセーフ プラグインが複数回実行されていると思います。ご提案いただいた新しい実行 ID も追加しました。これは、プロジェクトがビルドされたときに得られるものです。
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal: org.apache.maven.plugins:maven-failsafe-plugin:2.12:integration-test (default-integration-tests)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
...
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal: org.apache.maven.plugins:maven-failsafe-plugin:2.12:verify (default-integration-tests)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
テストは提案された新しい ID を使用していますが、同じ結果が得られます。つまり、不要なテストがまだ実行されています。