1

我有一个集成测试模块的 Maven 项目,默认情况下不包含在主构建中,该模块未列在父 pom 的列表中。集成测试通常是在所有其他模块都准备好之后构建的。集成测试还使用位于其他模块中的资源(配置文件)并通过相对路径(如 ../common/src/main/..../config.xml)引用它们。问题是是否可以对詹金斯做同样的事情,最好是重用由“主”构建创建的工作区?

最好的问候,尤金。

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>

另一件重要的事情是像这样使用 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 中的配置与前面的示例大致相同,但您可以避免使用 buildhelper-plugin,因为您会将集成测试放入 src/test/java 中。重要的是要了解maven-failsafe-plugin的约定,它假定 IT 的名称类似于 *IT.java 等。

此外,我可以推荐阅读文档和此处的文档。

于 2012-05-23T16:24:24.060 回答