当前位置: 首页 > 知识库问答 >
问题:

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

壤驷华美
2023-03-14

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

  1. H2数据库和嵌入式Redis。这可能行得通,但我们在一些查询中使用了一些Postgres特定的函数,因此这不允许涵盖所有情况

第三个选项需要一些手工工作。绝对有可能制作一个包含本地使用测试所需的所有服务的docker组合文件,并让架构体系团队按照他们想要的方式构建容器,以便在管道中运行测试。但是这样,当在本地运行测试时,开发人员将不得不手动启动/停止这些容器。

有没有办法自动化这个过程?或者有没有类似于在库伯内特斯工作的测试容器的选项?或者有没有办法在库伯内特斯运行测试容器?

提前谢谢你。

共有1个答案

鄂曦之
2023-03-14

您可以在基于Kubernetes的构建中运行testcontainers。您只需要在构建(容器)中提供一个容器运行时。这可能是无根docker,独立于kubernetes集群使用的容器运行时。

 类似资料:
  • 我正在尝试对停靠数据库运行DropWizard的集成测试。 DropWizard 测试容器 我试过的: 我得到由:java.lang.IllegalStateException引起的 将这些链接在一起也不起作用 最后,这是可行的,但据我所知,它在每次测试中都运行新的DropwizardAppRule,这是不好的... 那么,如何将规则链接起来,使PostgreSQLContainer首先启动,并且

  • 我尝试编写一个联调的Spring Data Elastisearch存储库在SpringBoot使用测试容器和junit5 org . spring framework . beans . factory . unsatisfieddependencyexception:创建名为“com . example . demo . addressrepositorytest”的bean时出错:通过字段“

  • 已删除MyTestConfig.class,但问题仍然相同。即使我使用@SpringBootTest(classes={Application.Class,MyProblematicServiceImpl.Class}),它仍然在自动连线的地方返回模拟对象。MyProblematicServiceImpl是用@Service注释的空类。

  • 与@mockbean和@spybean一样,有没有类似于@fakebean/@dummybean的东西? 其思想是,该实例是100%真实的(具有预期的生产内部状态),并且它覆盖(或者添加bean,以防在配置中没有声明)上下文中的bean。理想情况下,您不需要创建TestConfiguration类并将其设置为Primary,因为这样可以在每个测试的基础上控制假冒,只有在需要时才可以。否则它使用主的

  • 我正在使用一个带有spring boot 2.0.0.rc1的多项目分级器。我的子项目之一是SpringBoot应用程序,其中包含了我的集成测试。 集成测试用WebEnvironment.random_port标记为@springboottest。由于未解析的依赖关系(在另一个子项目中声明的服务,的同级),测试失败,使用了gradle命令行,但在Eclipse IDE中成功。 如果有人有主意?如何