使用maven-failsafe与fabric8-maven运行集成testing,打到集装箱数据库

我正在努力合成如何正确使用maven-failsafe和fabric8-maven插件。

我想运行集成testing,但是在集成前testing阶段,启动一个运行数据库的Docker容器,在后期集成阶段停止容器。

看看fabric8 docker-maven-plugin 文档 ,它说明这是可能的,但没有一个例子似乎说明了这一点。

更新#1:

这是成功为我工作的configuration:

<plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.15.9</version> <executions> <execution> <id>start-neo4j</id> <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> </execution> <execution> <id>stop-neo4j</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> <configuration> <images> <image> <alias>neo4j</alias> <name>neo4j:2.3.2-enterprise</name> <run> <ports> <port>7474</port> </ports> <wait> <log>Starting...</log> <time>20000</time> </wait> </run> </image> </images> </configuration> </plugin> 

docker-maven-plugin的一些例子显示了绑定的工作原理:

但是我build议更详细地检查一下pom.xml,因为它有更多的信息,例如如何设置等待部分。 如果还不清楚的话,请随时在这个项目中打开问题。

我们推荐使用docker的 maven集成和系统testing的方式是通过fabric8 arquillian插件 。 这需要为testing创build一个新的命名空间,并提供所有的kubernetes资源,然后运行你的JUnittesting用例来运行断言等。

您将需要数据库的docker镜像,并将其包装在kubernetes yaml / json文件中,以便在您的应用程序由fabric8-arquillian