问题标签 [testcontainers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1510 浏览

java - 如何在测试容器上将端口从容器公开到容器?

我想集成测试在 docker 环境中运行的一些服务。他们必须在连接时互相交谈。所以我需要以某种方式暴露彼此之间的端口。是否可以使用测试容器库进行此设置?我没有找到任何码头。

经过测试的应用程序在本地运行,它将连接到 dockerised 服务器:

  • mysql
  • 后端一

为了使后端更加困难,一台服务器需要与 mysql 服务通信。这可以使用测试容器吗?

0 投票
1 回答
2439 浏览

testcontainers - 测试容器中的 GenericContainer 应该如何参数化?

我的 IDE 中出现以下错误:

参数化类“GenericContainer”的原始使用检查信息:报告省略类型参数的参数化类的任何使用。参数化类型的这种原始使用在 Java 中是有效的,但违背了使用类型参数的目的,并且可能掩盖错误。

我已经检查了文档,并且创建者也到处使用原始类型: https: //www.testcontainers.org/quickstart/junit_4_quickstart/fe:

我不明白这种方法。谁能解释我应该如何参数化 GenericContainer<>?

0 投票
1 回答
1102 浏览

testcontainers - 如何在一个数据库服务器/容器上创建多个数据库

如何在一个 mysql db 容器上创建多个数据库?或者我是否必须为每个数据库创建 db 容器?当我尝试从 sql 文件脚本创建它时:

我收到一个错误:

内容init_mysql.sql

我尝试了很多配置。对我来说,除了在容器创建时配置的专用数据库外,我似乎无法执行 sql。请帮忙。我有 6 个数据库,为每个数据库创建专用容器是浪费资源。

0 投票
1 回答
987 浏览

testcontainers - 如何等到 Kafka 容器启动

我正在使用https://www.testcontainers.org/modules/kafka/并想配置容器,以便在我的测试开始之前,确保 Kafka 已启动并运行。

如何存档?

0 投票
1 回答
1038 浏览

spring-boot - 在 Gitlab Ci 中将 RabbitMq 作为 GenerigContainer 启动

我有一个具有集成测试的 Spring Boot 2.1 应用程序。出于集成测试的目的,我想用 testcontainers 框架启动一个 RabbitMq 容器。当我在本地机器上启动它们时,一切似乎都正常工作,我可以在 IT 测试期间访问我的 rabbitMQ。但是,一旦我在 gitlab-ci 下执行,我就会不断收到连接被拒绝的异常

这是我的应用程序属性

这是我在 gitlab-ci 中的验证步骤

这就是我启动测试容器 RabbitMQ 的方式

这是我的例外

我的猜测是它与在 gitlab 上解析 localhost 的主机名有关。

0 投票
0 回答
758 浏览

java - 如何存储来自测试容器的容器日志?

测试容器项目允许从 compose 文件启动 docker 容器。它们与 JUnit 集成。但是当测试阶段完成时,我所拥有的只是 maven 日志 - 到那时所有启动的容器都被删除了。如果 6 例如我运行容器 4 次进行 4 次测试Application,那就太好了。Database所以 maven 目标文件夹应该包含以下内容:target/test-containers/<start-id>/Application.logtarget/test-containers/<start-id>/Database.log.

有没有办法配置测试容器或 JUnit 或两者都将日志从启动的容器重定向到某个文件夹?

0 投票
1 回答
5677 浏览

spring - 如何使用 TestContainers + Spring Boot + oracle-xe

我尝试将测试容器与 Oracle-XE 模块和 Spring Boot 一起使用,到目前为止,当我启动测试时,我遇到了异常:

在我的src/test/application.properties中,我将 url 数据源声明为:

为了指示要为 oracle-xe 拉取的 docker 映像,我在以下位置创建了testcontainers.properties文件src/test/resources

您知道如何进行这项工作吗?

它与 MySQL 完美配合,使用数据源 url:

0 投票
2 回答
1268 浏览

docker - 如何使用 docker compose 为并行运行设置测试容器?

这是 docker-compose 文件:

在运行任何测试方法之前,此 compose 文件在 java junit test 中运行:

当所有测试方法一一运行时,根本没有问题。但是当我尝试同时运行 2 个以上的测试时,我得到了这样的错误:

这些端口与withExposedService功能不同。另一方面,撰写文件中的所有服务都在隔离网络中启动,因此不应该有任何冲突,但它们存在。任何 bpody 都可以解释端口发生了什么吗?应该向测试容器提供哪些附加配置以同时多次运行 docker-compose 服务?

0 投票
1 回答
703 浏览

java - Testcontainers - 在实例化过程中不要自动启动容器

假设我的集成测试(JUnit 5)中有以下容器:

这样,容器将自动启动。有没有办法告诉测试容器不要自动启动容器?

0 投票
0 回答
167 浏览

java - Testcontainers - 在集成测试中使用不同的数据库运行容器

在 maven 包阶段,我构建了我的应用程序的 docker 映像:

在我的集成测试中,我使用我的应用程序的这个图像,如下所示:

我的问题:如何向我的容器发出信号,表明它正在集成测试中运行,因此应该使用不同的数据库,例如 H2?