我有一个带有集成测试模块的 maven 项目,默认情况下未包含在主构建中,它未在父 pom 的列表中列出。集成测试通常在所有其他模块准备就绪后构建。集成测试还使用位于其他模块中的资源(配置文件(,并通过相对路径(如../common/src/main/..../config.xml(.问题是是否可以对 jenkins 做同样的事情,最好是重用由"主"构建创建的工作空间?
最好的问候,尤金。
您可以同时做这两件事,这意味着要么在同一模块中进行集成测试,但我建议有一个包含集成测试部分的单独模块。
如果当前模块中有该模块,则需要以这种方式进行设置。如果你在 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 中的配置或多或少与前面的示例相同,但您可以避免使用构建助手插件,因为您会将集成测试放入 src/test/java 中。重要的是要了解 maven-failsafe-plugin 的约定,该插件假设它被命名为 *IT.java 等。
此外,我可以建议阅读本文和此处的文档。