我正在尝试在 docker 容器内对我的 maven 项目运行集成测试。我正在使用 dockerfile-maven 插件在我的 docker 容器内移动 jar 文件,并使用 maven-failsafe-plugin 来启动我的集成测试。但不知何故,集成测试在构建 docker 之前就开始了。它也不会调用我的测试函数。
这是我的pom.xml片段。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.7</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>rohitbarnwal7/presto_him</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>plugin-${project.version}-jar-with-dependencies.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
更新:使用上述配置,将调用集成测试类,但实际上不会执行任何测试。
任何帮助将不胜感激。谢谢。
您需要将映像的构建绑定到集成测试之前运行的 maven 阶段。
如将 Docker 命令绑定到 Maven 阶段中所述,您可以将构建 Docker 映像绑定到特定的 maven 阶段,如下所示:
构建映像 编译 包
在这种情况下,构建映像将在 maven package
阶段进行,该阶段将在integration-test
阶段之前运行