gpt4 book ai didi

continuous-integration - 使用 docker 进行持续交付的集成测试

转载 作者:行者123 更新时间:2023-12-04 00:16:25 26 4
gpt4 key购买 nike

我目前开发的产品公开了 REST API,最终将托管在云端。

我的技术栈是maven之上的spring(boot、mvc、data、test等)。我有集成测试,可以从连接到测试数据库的 API 进行测试。

为了在与生产环境相同的环境中更好地测试我的产品,我想使用容器来执行我的集成测试。我的目标是遵循这个持续交付工作流:

  • 编译
  • 运行单元测试
  • 构建应用程序 (jar) 并部署到中央存储库
  • 使用这个存档创建一个 docker 容器
  • 启动容器(使用spring boot)
  • 针对正在运行的容器运行集成测试
  • 运行性能测试
  • 如果一切正常,将此容器部署到中央存储库
  • 将同一个容器部署到产品中(只是使用不同的命令行参数)。

这种方法的好处是在生产阶段具有相同的容器形式集成测试阶段,这看起来很理想,不是吗?

但是我不知道如何使用驻留在我的源包中的 spring mvc 测试来做到这一点。我怎么能用 mockmvc 做这样的事情呢?如何足够灵活地在开发中运行集成测试?

有人试过这种方法吗?我在这里错过了什么吗?

提前致谢

最佳答案

Spring MVC 测试框架(即 MockMvc)不能用于测试部署在 Servlet 容器中的 Spring Web 应用程序。

相反,Spring MVC 测试框架的主要目标是提供一流的“支持通过流畅的 API 测试客户端和服务器端 Spring MVC 代码 em>。”此外,它“使用 DispatcherServlet 来处理请求,从而在不需要运行 Servlet 容器的情况下近似于完整的集成测试。

上面引用的文字直接来自 Spring Framework 引用手册。

总而言之,Spring MVC 测试框架 只能用于容器外集成测试。如果您希望测试部署在 Servlet 容器中的基于 Spring 的 Web 应用程序,您将需要使用其他框架,例如 HtmlUnit、HttpUnit、Selenium 等。

问候,

山姆

关于continuous-integration - 使用 docker 进行持续交付的集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30111676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com