首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在docker中运行mysql进行maven测试(使用maven-surefire-plugin)

如何在docker中运行mysql进行maven测试(使用maven-surefire-plugin)
EN

Stack Overflow用户
提问于 2018-01-16 01:38:20
回答 1查看 1.6K关注 0票数 0

我发现有几篇文章解释了如何使用maven和docker来运行集成测试。它们基本上解释了如何使用/设置fabric8、maven-docker-plugin和maven故障安全插件。

我想知道是否有可能使用fabric8,例如,与surefire一起使用。我的具体需求是:我需要运行我的测试(JUnit测试),但首先我需要/想要启动一个运行MySQL的docker镜像。

我和fabric8没有关系。如果有另一种方法可以在开始测试之前启动docker镜像,并在测试运行结束时停止/终止它,这将对我有很大帮助。

提前谢谢。最大值

EN

回答 1

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48268096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档