1

親pomのリストにリストされていない、デフォルトでメインビルドに含まれていない統合テストモジュールを備えたMavenプロジェクトがあります。統合テストは通常​​、他のすべてのモジュールの準備ができた後に構築されます。統合テストでは、他のモジュールにあるリソース(構成ファイル)も使用し、相対パス(../common/src/main/..../config.xmlなど)でそれらを参照します。問題は、jenkinsで同じことができるかどうか、できれば「main」ビルドで作成されたワークスペースを再利用できるかどうかです。

よろしく、ユージーン。

4

1 に答える 1

3

両方のことを行うことができます。つまり、同じモジュールに統合テストを含めることを意味しますが、統合テスト部分を含む別のモジュールを用意することをお勧めします。

現在のモジュールにモジュールがある場合は、そのようにセットアップする必要があります。統合テストが src/it/java にある場合

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.5</version>
    <executions>
      <execution>
        <id>add-test-source</id>
        <phase>process-resources</phase>
        <goals>
          <goal>add-test-source</goal>
        </goals>
        <configuration>
          <sources>
            <source>src/it/java</source>
          </sources>
        </configuration>
      </execution>
    </executions>
  </plugin>

もう 1 つの重要なことは、次のように maven-failsafe-plugin を使用することです。

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

ただし、通常は、次の構造のような統合テスト用のものを含む別の統合テスト モジュールを用意することをお勧めします。

   +-- root (pom.xml)
        +-- mod1 (pom.xml)
        +-- mod-it (pom.xml)
        +.. ..

mod-it の構成は前の例とほぼ同じですが、統合テストを src/test/java に配置するという buildhelper-plugin の原因を回避できます。*IT.java などのように IT の名前が付けられていることを前提とするmaven-failsafe-pluginの規則に注意することが重要です。

さらに、これこちらのドキュメントを読むことをお勧めします。

于 2012-05-23T16:24:24.060 に答える