在 Kubernetes 中进行 Spring Boot 集成测试的 Testcontainers 的选项或替代方案?

Posted

技术标签:

【中文标题】在 Kubernetes 中进行 Spring Boot 集成测试的 Testcontainers 的选项或替代方案?【英文标题】:Options or alternatives to Testcontainers for Spring Boot integration testing in Kubernetes? 【发布时间】:2021-12-19 08:21:25 【问题描述】:

我需要使用 Postgres、Redis 和 Elasticsearch 在 Spring Boot 项目中设置集成测试(稍后还会添加 Kafka)。到目前为止,我找到了两个选择:

    H2 数据库和嵌入式 Redis。这可能有效,但我们在某些查询中使用了一些 Postgres 特定的函数,因此这无法涵盖所有​​情况。 Testcontainers。这看起来很完美,但显然不可能在管道中运行,因为我们使用的是 Kubernetes

第三个选项需要一些手动工作。绝对有可能制作一个 docker compose 文件,其中包含测试本地使用所需的所有服务,并让基础设施团队按照他们想要的方式构建容器,以便在管道中运行测试。但是这样一来,开发人员在本地运行测试时就必须手动启动/停止这些容器。

有没有办法自动化这个过程?或者任何类似于 Testcontainers 的选项可以在 Kubernetes 中运行?或者也许有办法在 Kubernetes 中运行测试容器?

提前谢谢你。

【问题讨论】:

【参考方案1】:

您可以在基于 Kubernetes 的构建中运行测试容器。您只需要构建(容器)中可用的容器运行时。这可以是无根 docker,并且独立于您的 kubernetes 集群使用的容器运行时。

【讨论】:

以上是关于在 Kubernetes 中进行 Spring Boot 集成测试的 Testcontainers 的选项或替代方案?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Kubernetes:支持对无法读取 ConfigMap 的事件进行失败策略

Kubernetes:Spring Cloud Data Flow Server 的服务帐户权限问题

kubernetes部署spring cloud微服务项目

使用 VMware Spring Cloud Gateway for Kubernetes 进行定制和观察

带有入口 kubernetes 的 Spring Cloud oauth 2

Spring Cloud Netflix 与 Kubernetes [关闭]