jenkins 是否可以在主项目之后构建集成测试模块

3zwjbxry  于 2022-12-22  发布在  Jenkins
关注(0)|答案(1)|浏览(130)

我有一个maven项目,默认情况下,集成测试模块不包含在主构建中,没有在父pom列表中列出的。集成测试通常在所有其他模块准备就绪后构建。集成测试也使用资源(配置文件),并通过相对路径引用它们(比如../common/src/main/.../config.xml)。问题是是否可以对jenkins做同样的事情,最好是重用由“main”构建创建的工作空间?
向你问好尤金。

y1aodyip

y1aodyip1#

您可以同时做这两件事,这意味着可以在同一个模块中进行集成测试,但我建议使用一个单独的模块,其中包含集成测试部分。
如果当前模块中有该模块,则需要以这种方式设置它。如果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等。
此外,我可以推荐阅读thisdocumentation here

相关问题