45

私は StackOverflow と他の多くのサイトをくまなく調べ、他の多くの関連する投稿を見つけ、上記のすべての提案に従いましたが、最終的にフェイルセーフは私のテストをスキップしています.

私の JUnit テストは次の場所にあります。 myModule/src/main/test/java/ClientAccessIT.java

このモジュールには単体テストがないため、surefireをスキップします。

<!-- POM snippet -->
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
  <skip>true</skip>
  </configuration>
</plugin>

そして、フェイルセーフで統合テストを実行しようとしています:

<!-- POM snippet -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <executions>
        <execution>
            <id>run-tests</id>
            <phase>integration-test</phase>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
</plugin>

ただし、実行すると次のようmvn verifyに表示されます。

[INFO] --- maven-failsafe-plugin:2.14.1:integration-test (run-tests) @ rest-services-test ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

私は最後の 4 時間半を精練に費やしました。他に言及する価値があるかもしれない唯一のことは、Cargoで Tomcat コンテナーをセットアップして破棄することです。誰かが明白な問題を見ていますか?

4

13 に答える 13

18

同様の問題がありました。target/test-classes にコンパイルされたテスト クラスがない場合は、pom ファイルをチェックし、パッケージが「pom」でないことを確認してください。

于 2015-07-31T21:11:49.667 に答える
15

マルチモジュール プロジェクトの場合、子プロジェクトではプラグインを次のように宣言する必要があります。

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
 </plugin>

version は親 pom から継承します。上記が定義されていないと、親 pom のプラグインだけでは機能しません。

于 2016-08-01T19:49:13.790 に答える
13

テスト クラスの名前を変更する必要があります。

@acdcjunior が指摘したよう に、プラグインがデフォルトで検索する名前はドキュメントで見つけることができます。

デフォルトでは、Failsafe プラグインは、次のワイルドカード パターンを持つすべてのテスト クラスを自動的に含めます。

  • " **/IT*.java" - そのすべてのサブディレクトリと、"IT" で始まるすべての Java ファイル名が含まれます。
  • " **/*IT.java" - そのすべてのサブディレクトリと、"IT" で終わるすべての Java ファイル名が含まれます。
  • " **/*ITCase.java" - そのすべてのサブディレクトリと、"ITCase" で終わるすべての Java ファイル名が含まれます。
于 2013-05-05T18:45:40.330 に答える
6

私も同様の問題を抱えていましたが、パッケージ要素を「pom」にする必要がありました。テスト ソース ファイルがコンパイルされ、maven-compiler-plugin を使用して .../target/test-classes フォルダーに追加されていることを確認します。

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven.compiler.version}</version>
            <executions>
                <execution>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
于 2016-02-17T12:31:10.350 に答える