3

私はmavenベースのプロジェクトに取り組んでいます。プロジェクトには複数のモジュールがあります。これがプロジェクト構造です

- 計画

--Module1  
   -- pom.xml  
--Module2  
   -- pom.xml    
--Module3-war   
   -- pom.xml 
--parent module   
   --pom.xml

親モジュールのパッケージ タイプは「pom」で、すべてのモジュールはこれで定義されます。
以下に示すように、親モジュール pom に failsafe-pligin を追加しました

 <build>
            <plugins>
               <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <executions>
                  <execution>
                    <id>integration-test</id>
                    <phase>integration-test</phase>
                    <goals>
                      <goal>integration-test</goal>
                    </goals>
                  </execution>
                  <execution>
                    <id>verify</id>
                    <phase>verify</phase>
                    <goals>
                      <goal>verify</goal>
                    </goals>
                  </execution>
                </executions>
            </plugin>
         </plugins>
      </build>

「mvn verify」コマンドを実行すると、フェイルセーフ プラグインが実行されません。私の統合テスト名「TestServiceIT.java」は、構造のmodule1にあります。

war モジュールに同じ「フェイルセーフ」プラグインを追加すると、WAR の作成後にフェイルセーフ プラグインが実行されることがわかりますが、テスト クラスが見つかりませんでした。下記参照

[INFO] Started Jetty Server
[INFO]
[INFO] --- maven-failsafe-plugin:2.15:integration-test (integration-test) @ service-integration-test
---
[INFO] No tests to run.
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform d
endent!
[INFO]
[INFO] --- jetty-maven-plugin:8.1.11.v20130520:stop (stop-jetty) @ service-integration-test ---
[INFO]
[INFO] --- maven-failsafe-plugin:2.15:verify (verify) @ service-integration-test ---
[INFO] No tests to run.

だから、私の質問は

  1. フェイルセーフプラグインがメインの pom.xml で定義されている場合、なぜそれが実行されないのですか?
  2. 別のモジュールで定義されたテストケースが見つからないのはなぜですか?
  3. マルチモジュールmavenプロジェクトで統合テストを書くためのベストプラクティスは何ですか?
4

1 に答える 1

0

フェイルセーフ プラグイン構成に dependenciesToScan を追加する必要があると思います。すなわち:

 <dependencies>
  <dependency>
   <groupId>org.arquillian.tck.container</groupId>
   <artifactId>arquillian-tck-container</artifactId>
   <version>1.0.0.Final-SNAPSHOT</version>
   <classifier>tests</classifier>
  </dependency>
  </dependencies>
 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.14-SNAPSHOT</version>
    <configuration>
     <dependenciesToScan>
      <dependency>org.arquillian.tck.container:arquillian-tck-container</dependency>
     </dependenciesToScan>
    </configuration>
   </plugin>
  </plugins>
 </build>

しかし、このバグのためにテストできませんhttps://issues.apache.org/jira/browse/SUREFIRE-1024

于 2014-03-18T17:26:36.677 に答える