26

プロジェクトを検査し、その特定の機能をテストできるため、さまざまなプロジェクトで実行する必要があるjunitテストを含むmavenリポジトリにjarがあります。残念ながら、この機能要求が示すように、確実に jar に含まれているテストは取得されません。

機能要求では、jar を解凍してから確実に実行することを提案しています。

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>

どんな助けでも感謝します。

4

3 に答える 3

42

別の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 で機能します。おそらく確実に実行できるものなら何でも機能します。

于 2013-06-12T09:12:27.247 に答える
3

(これは、上記の khmarbaise からのコメントの内容を言い直しているだけですが、明確化されていないため、言い直す価値があると思います):

クラス フォルダの代わりに test-classes ディレクトリを outputDirectory として使用します。

<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>
于 2013-01-28T21:48:27.077 に答える
1

問題で説明されているように、テストjarに配置されていないプロジェクトに含まれているスイートが必要です。

于 2012-05-08T10:46:25.223 に答える