我发现有几篇文章解释了如何使用maven和docker来运行集成测试。它们基本上解释了如何使用/设置fabric8、maven-docker-plugin和maven故障安全插件。
我想知道是否有可能使用fabric8,例如,与surefire一起使用。我的具体需求是:我需要运行我的测试(JUnit测试),但首先我需要/想要启动一个运行MySQL的docker镜像。
我和fabric8没有关系。如果有另一种方法可以在开始测试之前启动docker镜像,并在测试运行结束时停止/终止它,这将对我有很大帮助。
提前谢谢。最大值
发布于 2018-01-16 16:27:30
是的,你一定能做到。这个想法是使用maven docker插件,比如fabric8 docker插件,并在测试阶段之前启动一个容器,在测试阶段之后停止它。但请注意,从技术上讲,连接到数据库的测试不是单元测试,它们应该是集成测试。
有许多在线教程可以做到这一点,例如INTEGRATION TESTING WITH DOCKER AND MAVEN
您只需在docker插件运行时更改阶段,即可将其应用于单元测试。
您可以将<phase>pre-integration-test</phase>更改为在maven test阶段之前开始的阶段,例如<phase>generate-test-resources</phase>,并在测试结束后停止容器,例如:<phase>prepare-package</phase>。
请注意,没有像集成测试那样好的阶段名称,因为在运行单元测试时启动外部服务并不理想。但不管怎样,它还是起作用了。
有关maven阶段的完整参考,请查看Introduction to the Build Lifecycle
https://stackoverflow.com/questions/48268096
复制相似问题