在maven中的docker中运行单一集成测试

时间:2018-02-02 07:13:05

标签: java maven docker integration-testing presto

我正在尝试在docker容器中的maven项目上运行集成测试。我使用dockerfile-maven插件在我的docker容器和maven-failsafe-plugin中移动jar文件来启动我的集成测试。但不知何故,集成测试在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>

更新:使用上述配置,正在调用集成测试类,但实际上没有执行任何测试。

任何帮助都将受到高度赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

您需要将图像的构建绑定到在集成测试之前运行的maven阶段。

Bind Docker commands to Maven phases中所述,您可以将docker镜像绑定到特定的maven阶段,如下所示:

           打造形象       编                包            

在这种情况下,构建图像将在maven package阶段进行,该阶段将在integration-test阶段之前运行