【问题标题】:How to make arhitecture for integration tests and microservices in Node.js如何在 Node.js 中为集成测试和微服务构建架构
【发布时间】:2019-03-22 05:57:21
【问题描述】:

我已经创建了微服务应用。

每个微服务都经过单元测试。

现在,在我开始构建前端和更复杂的集成之前,我想使用 docker 制作集成服务器。

我知道如何创建 docker-compose fie,它将旋转我的所有服务进行测试,但我不知道您如何运行集成测试?

您是创建另一个服务进行测试,然后在内部调用 jest /integration 还是使用 docker 命令来处理它?

现在,我为单元测试创​​建了一项服务,以查看是否一切都正确设置 docker 明智,并且一切正常。

我想自动化一切,这样当我推送 bitbucket 时,我可以将我的存储库与 bitbucket 管道或更好的 docker-hub 连接以运行我的测试,包括单元测试和集成测试。

【问题讨论】:

  • 不能只从应用程序容器中运行集成测试,您在 docker-compose 中连接了服务依赖项吗?除非您正在谈论完全端到端的测试,如果您需要在 QA 中进行,您也可以通过更改集成测试的主机来完成。
  • 我目前的解决方案是创建一个容器来运行集成测试,它将依赖于其他服务,所以它会从最后开始
  • 所以我想主要问题是在容器内还是在容器外运行测试?容器内部为您提供了一些好处,例如不必为本地环境中的测试安装包依赖项,并且可以很好地隔离各种环境,所以如果这是您的主要问题,我不明白为什么不这样做。我设置它的方式是为您要部署的映像使用多阶段构建,并分离可能包含测试依赖项的映像以运行测试(单元和集成)。
  • 我会接受这个答案

标签: javascript docker continuous-integration integration-testing microservices


【解决方案1】:

在容器内运行测试带来了一些额外的好处,例如不必在本地环境中为测试安装依赖项以及隔离环境特定问题的可能性。

您可以查看的 Docker 的另一个功能是用于部署映像和单独映像的多阶段构建,其中包括为单元测试和集成测试运行的测试依赖项。这样,部署的镜像就更小了,并且不包含潜在的不必要的测试依赖项。

另外需要注意的是,您可能希望使用确定主机、端口或用户帐户的环境变量来参数化测试运行,以便您可以使用针对不同环境的正确凭据运行测试。

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2016-08-11
    • 2019-11-02
    相关资源
    最近更新 更多