Mavenリポジトリにjunitテストを含むjarがあります。これは、プロジェクトを検査してその特定の機能をテストできるため、さまざまなプロジェクトで実行する必要があります。残念ながら、surefireはjarに含まれているテストを取得しません。これは 機能リクエストが示す です。
機能リクエストでは、jarを解凍して、surefireで実行することを提案しています。
Maven-dependency-pluginを使用してjarを正常に解凍しましたが、含まれているテストは実行されません。これは、jarを解凍するようにmaven-dependency-pluginを構成した方法です。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-test-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>de.mwx.test</groupId>
<artifactId>Selenium-test-base</artifactId>
<version>0.1</version>
<overWrite>true</overWrite>
<outputDirectory>
${project.build.directory}/classes
</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
どんな助けでも適用されるでしょう。
別のjarからMavenでテストを実行する方法があります。 maven-surefire-pluginバージョン2.15から、テストjarをスキャンしてテストを実行するようにmavenに指示できます。テストjarを抽出する必要はありません。テストjarに依存関係を追加するだけで、次のことができます。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<dependenciesToScan>
<dependency>test.jar.group:test.jar.artifact.id</dependency>
</dependenciesToScan>
</configuration>
</plugin>
https://Gist.github.com/aslakknutsen/4520226 そして https://issues.Apache.org/jira/browse/SUREFIRE-569 からこのようなものを取りました
予想通り、これはJUnitとTestngで機能します。おそらく、surefireが実行できるものなら何でも機能します。
(これは、上記のkhmarbaiseからのコメントの内容を言い換えているだけですが、明確にされていないため、言い換える価値があると思います):
OutputDirectoryとしてclassesフォルダーの代わりにtest-classesディレクトリを使用します。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-test-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>de.mwx.test</groupId>
<artifactId>Selenium-test-base</artifactId>
<version>0.1</version>
<overWrite>true</overWrite>
<outputDirectory>
${project.build.directory}/test-classes
</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
この問題で説明されているように、テストjarにないプロジェクトに含まれているスイートが必要です。