问题标签 [testcontainers-junit5]
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.
spring-boot - 如何使用 junit5 和 testcontainers 测试存储库?
我有一个示例项目,我在其中尝试不同的技术。
我有以下设置:
- Spring Boot 2.3.4.RELEASE
- 飞路 7.0.1
- 测试容器 1.15.0-rc2
- Junit 5.7.0
如何使用 testcontainer-junit5 测试存储库层?
我现在拥有的代码示例CompanyRepositoryTest.java
:
添加时@SpringBootTest
,我需要设置所有上下文并遇到一些应用程序加载上下文问题?
问题是,任何人都可以揭开@TestContainers
注释的神秘面纱吗?在测试存储库时使用它的最佳实践或正确方法是什么?
spring-boot - 使用 Kotlin、JUnit 和 Spring Boot 使测试容器可重新启动
我正在尝试将可重新启动的 Testcontainers 集成到使用 JUnit 和 Kotlin 的应用程序中。
我目前这样做的方式是在我设置容器和 Spring Boot 属性的每个测试套件中都有一个伴随类,如下所示:
但由于它位于编译为静态块的块中,因此容器不会在每次测试时重新启动(根据我观察到的行为和官方文档)。
当我尝试将容器放在伴随对象块之外时,Spring 无法正确设置动态道具并抛出java.lang.IllegalStateException: Mapped port can only be obtained after the container is started
.
试图达到我的结果@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
对行为没有影响。
mongodb - Quarkus中如何清除测试环境TestContainer
我正在努力使用 TestContainers 删除保存在容器中的所有数据。我能够从 MongoDB 测试容器创建和检索数据,但是每个测试用例都应该是自包含的,并且一个测试不应该影响另一个测试。如果我无法以某种方式“清除”我的数据库,那么在测试“A 类”之后,在执行“B 类”测试时,我的数据库中将会出现一些“脏”。
在 Spring Boot 环境中,我可以使用以下任一方法轻松处理这些情况:
或者
我知道我可以在容器上执行一些命令,这是我到目前为止所做的:
试图简单地执行 ashow dbs
并没有让我得到任何东西。
我可以连接到容器并手动执行db.collection.drop()
吗?如果是的话,我很乐意接受一些提示和片段。(Obs:任何这样做的 API 都会更好)。
docker-compose - 测试容器:无法初始化 DockerComposeContainer
我正在使用 testcontainers ( https://www.testcontainers.org ) 来执行集成测试。测试用例需要一个 Oracle 数据库和一个兼容 Eclipse Microprofile 的平台,在我的例子中是 Wildfly 20。我有以下 docker-compose.yaml 文件:
当使用 docker-compose 命令或 docker-compose-maven-plugin 运行时,此 docker-compose 文件可以正常工作并按预期工作。
为了使用相同的 docker-compose.yaml 文件进行集成测试,我使用以下代码:
上面的代码使用 DockerCompose 类,它是 DockerComposeContainer 的包装器,如下所示:
尝试运行集成测试会引发以下异常:
即使在调试模式下也没有任何附加信息。上面引用的第 26 行如下:
所以这里提出了例外:
谁能让我知道我在这里做错了什么?
提前谢谢了。
西摩
docker - 没有这样的图像:testcontainers/byvren8fgzpzaxgy:latest
当我尝试为 Kafka 容器编写集成测试时,在尝试构建项目后出现此错误。我不知道出了什么问题。
我正在使用版本 1.15.1 org.testcontainers maven 依赖项。对出了什么问题有什么建议吗?
docker-compose - 运行测试套件时测试容器初始化错误
我有多个测试类运行相同的 docker-compose 和testcontainer。
initializationError
尽管每个测试在单独执行时都通过了,但该套件失败了。
这是第二次测试期间发生的堆栈跟踪的相关部分。
./gradlew e2e:test -i
在我看来,第二个测试并没有等待第一个关闭以前的容器。
这里是所有测试继承的基类。它负责启动容器。
spring-boot - spring boot kafka 在使用带有 kafka、zookeeper、模式注册表的测试容器时因“代理可能不可用”而失败
我在测试代码中运行了如下测试容器。
它工作得很好。但是当我尝试使用上面的 testcontainer 配置运行 spring boot 测试时出现了问题,因为 testcontainer 动态生成代理端口,但 NetworkClient 不断使用 localhost:9092 访问代理,即使我动态覆盖@SpringBootTest 代码上的属性,如下所示
下面是 AdminClientConfig 日志启动时间,它显示bootstrap.servers = [localhost:56001]
了 testcontainer 动态绑定的端口。
即使我这样设置,它仍然会尝试连接到 localhost:9092,如下所示。
下面是docker ps
运行 spring boot 测试的结果。
我尝试使用 docker compose 模块运行 testcontainers,但它有同样的问题。我究竟做错了什么?请帮忙。
spring-boot - 在 Testcontainer Spring 引导测试中模拟服务
我在春天很新,我现在面临一个测试问题:
我有以下服务:
我在另一个类中使用这个服务类:
我尝试编写一个测试,但 MyService 始终为空..
如何将模拟 MyService 注入测试容器?
谢谢!
spring-boot - 为什么 TestContainer 使用错误的 URL(缺少 'tc')?
我打算使用Testcontainer
(版本 1.15.2)和 Kotlin 1.4.31 测试数据库访问,我有一个测试类......
...但我总是遇到一个例外:
我有一个application.yaml
包含:
我想知道为什么 TestContainers 徒劳地寻找jdbc:postgresql尽管我把 jdbc: tc :postgresql 放在 application.yaml
我更喜欢使用构造函数自动装配,但我没有得到它,因为 Kotlin 总是抱怨:
我无法通过构造函数自动装配或在现场使用@Autowired 来GenericJpaDao
获取实例。WebTestClient
根据 WebTestClient 回答:这可以通过使用来实现@AutoConfigureWebTestClient
micronaut - Micronaut 重用测试容器
我正在使用 Micronaut 2.4.0 并使用 testContainers 进行 SQL Server 集成测试。
这是我的 gradle.build
这是用于测试的 application.yml
这些是唯一的变化,micronaut 处理测试容器的创建和启动。
问题
对于每个测试类,它都会创建新容器。测试的大部分时间是在容器创建中。
有没有办法可以重复使用容器?(清除数据库可能仍然可以)