问题标签 [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.
postgresql - 等待容器在测试容器中启动,使用 GenericContainer 自定义 PostgreSQL 映像
我正在开发基于 Testcontainers 解决方案的系统/集成测试。我需要使用我们自己的数据库 PostgreSQL 映像和已经应用的数据库模式。
出于这个原因,我正在使用 Testcontainers GenericContainer。
我正在使用 Spring Boot 开发测试,因此我创建了抽象类,它将为所有测试保存此配置
但是,问题是当测试运行时,容器仍在启动。这 withStartupTimeout(Duration.ofSeconds(30)) 出于某种原因不起作用。
当我在属性方法处停止调试并花几秒钟来启动容器时,所有测试都运行良好。
当测试失败时,我会看到下一个日志:
如果我放 Thread.sleep(..) 它也可以,这不是更好的解决方案。
什么是等待的正确解决方案或知道容器准备好的正确策略是什么?
java - 将 Spring Cloud Vault 与 @DynamicPropertySource 一起使用时出现问题
用于TestContainers
启动Vault
容器时,启动时随机选择容器暴露的端口。
使用 a@DynamicPropertySource
覆盖属性
不起作用,因为Spring Cloud Vault
似乎没有“看到”添加的属性。
该问题存在于Spring-Boot 2.5.1
和中Spring-Cloud-Vault-Config 3.0.3
。
可以在GitHub 上找到一个显示该问题的小项目。
我做错了什么还是有其他方法可以覆盖配置?
当Spring-Vault
与 a@VaultPropertySource
而不是一起使用时,Spring-Cloud-Vault
事情会按预期工作。
spring-boot - 找不到有效的 Docker 环境。请查看日志并检查配置
我正在尝试使用 Junit5 在 Spring Boot Kotlin 中编写集成测试。我正在使用测试容器来测试我的应用程序的数据访问层。我已经初始化了我的 docker 镜像。请参考我下面的代码。
当我尝试测试“containerStartsAndPublicPortIsAvailable”函数时,出现以下错误
docker - 带有暴露端口的测试容器自定义内部网络
我想使用 hazelcast 和 mongo 数据库在 java 中为 Spring Boot 应用程序编写集成测试:
spring 应用程序正在使用 hazelcast - hazelcast 必须向 spring 应用程序公开端口,spring 应用程序必须知道它
hazelcast 正在使用 mongo 数据库,hazelcast 必须知道 mongo 端口,mongo 容器必须对 hazelcast 可见。
有两个容器 - hazelcast 和 mongo。可能它们可能在内部网络中,但是有可能将 hazelcast 端口暴露给 spring 吗?
我怎样才能以最好的方式完成它?
mongodb - 带有 @Testcontainers 的 Mongo 驱动程序,在测试成功运行后抛出异常
我正在使用 testcontainers:mongodb 在示例 spring boot kotlin 项目中设置集成测试。
我已经设置了一个 MongoDBContaine,一切都按预期工作 - 应用程序连接到 mongodb 并使用存储库进行测试(例如保存、删除)工作得非常好,但我注意到在测试运行(成功)之后 mongodb.driver最后抛出异常 - 看起来容器没有被优雅地关闭/停止 - 这可能吗?
我如何启动容器的示例
测试方法
至于运行类,我只是在它上面加上@SpringBootTest 的@Testcontainers 注解,仅此而已。
我最后得到的例外是
testcontainers - 我想通过属性配置 IndefiniteWaitOneShotStartupCheckStrategy,而不是在 testcontainer 上使用 Java 类
我需要使用 testcontainer.properties 的“无限一次启动策略示例”。如何使用属性配置 IndefiniteWaitOneShotStartupCheckStrategy?
实际上,我想通过属性配置这三个示例,但我不知道如何执行此操作:
testcontainers - 使用“withFileSystemBind”绑定卷 -> 权限被拒绝
我将一个卷绑定到我的 GenericContainer 如下:
但我有一个权限被拒绝的问题。我在 GenericContainer 中运行的 spring-boot 应用程序中添加了以下内容:(rdfRepositoryHome = /mnt/spring)
输出:
如何绑定可写的卷?
谢谢
2021 年 8 月 19 日更新:
我向另一个项目添加了一个测试,该项目是公开的:
在镜像上运行:
maven:3.6.1-jdk-11
更新 30.8.2021:
问题应该是可重现的(独立于 gitlab ci 和 DinD!)
spring-boot - 一些测试运行后测试容器失去连接
我在我的 oss 软件中使用 testcontainer,但我认为我的配置或 docker/testcontainer 运行时存在问题......
我有一些测试,当它们分开运行时,一切正常,但是当我尝试运行所有测试时,由于应用程序尝试与容器连接时出现问题,最后一次失败。
调试问题我发现容器在一个端口启动,但应用程序正在尝试在另一个端口连接,大部分都在最后一次运行的测试类中使用
所有测试运行:
其中一个失败的测试向我显示了这个日志:
并且在类启动时启动的容器UserControllerTest
正在使用另一个端口,如下所示:
我的测试配置基于一个抽象类(见下文),并且就像前面所说的,如果运行一个单独显示错误的类,一切正常。
有人见过这样的事情知道如何解决吗?
sql-server - 测试容器错误:数据库“DB_Name”不存在
我创建了一个具有以下定义的实体。运行测试后,我看到数据库“DB_Name”不存在。我为数据库和模式创建提供了初始脚本,但我仍然遇到问题。问题是代码中有 schema = "dbo", catalog = "DB_Name"。
初始脚本:
测试类:
我该如何解决这个问题?
java - 在 JUnit 5 所有类测试完成后,测试容器未从 docker 中删除
我正在使用测试容器对 micronaut 应用程序进行集成测试和端到端测试。
这是测试容器的配置
扩展测试容器的类
因为我正在.withReuse(true);
为所有其他测试类重用测试容器。如果我在集成测试运行时禁用.withReuse(false)
每个类,则会创建容器,这需要更长的时间来执行测试。
所以,为了重用同一个容器,我使用了这个特性.withReuse(true)
。由于容器在那里停留的时间更长。所以我想每 1-2 小时取出一次容器