Java Maven 项目 Docker 集成测试

标签 java maven continuous-integration automated-tests docker

我们有一个大型的多模块 Maven 项目,它使用 Cargo 来启动 Tomcat 并进行一些 war ,使用一个插件在 Postgres 数据库中插入 sql 数据,然后使用 Cucumber 运行集成测试套件。

我读了很多关于 Docker 的文章,我可以尝试一下它。这是我的问题,

Docker 可以替代我使用 Cargo 的集成测试吗?

有什么好处?

与使用 cargo 部署相比,性能如何?

使用 postgres 和 tomcat 镜像启动容器的套件能否缩短构建时间?

希望有人可以帮助我,因为我对 docker 非常满意!

最佳答案

  • Docker 可以替代我使用 Cargo 的集成测试吗?

是的Continuous Integration Using docker 。这个 jetty 容器可能会派上用场。

  • 与使用 Cargo 进行部署相比,性能如何?

性能大致相同,启动速度可能会稍慢一些,具体取决于您在 Docker 容器中执行的操作。 Docker 更多的是关于隔离和可重复性而不是性能。它的性能比虚拟机高得多,但并不比 native 主机上的 Cargo 更好。

  • 使用 postgres 和 tomcat 镜像启动容器的套件能否缩短构建时间

也许,取决于您目前在做什么。您可以在 Docker 容器中创建一个已知状态,如果您之前手动创建该状态,那么您可能会发现构建速度更快。

Docker 的真正好处是,您可以在 Postgres 数据库中拥有众所周知的状态,并且测试始终针对该已知状态运行。此外,您不必让团队中的每个人都在本地安装 Postgres。他们只需要安装 Docker,剩下的就会自动化。请经常将 Docker 与 Vagrant 结合使用,这样即使安装 Docker 也可以脚本化和自动化。

关于Java Maven 项目 Docker 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384622/

相关文章:

asp.net-core - 构建失败, "Error:The process '/usr/bin/dotnet' 失败,退出代码 1"after adding "no-build :true"in the dotnet pack command

error-handling - 使用蛋糕构建脚本时如何在 TeamCity 中显示构建错误消息

java - 使用 JAXB 将对象的内容放入不同类型的新实例中

java - 将 Maven 插件绑定(bind)到编译阶段时出现问题

azure-devops - Azure Devops 管道在管道构建中出现 `default literal` 错误

Maven 发布过程替代

android maven 插件在 Eclipse 中没有获取 ANDROID_HOME env 变量

java - Websocket 在 playframework 2 中向所有客户端发送数据

Java String 完成数学求和

java - 使用 maven 命令按一定顺序运行多个 junit testsuite