Micronaut 重用测试容器

问题描述

我使用 Micronaut 2.4.0 并使用 testContainers 进行 SQL Server 集成测试。

这是我的 gradle.build

    testImplementation("org.testcontainers:testcontainers")
    testImplementation("org.testcontainers:junit-jupiter")
    testImplementation("org.testcontainers:mssqlserver")

这里是用于测试的application.yml

    url: jdbc:tc:sqlserver://localhost;databaseName=test-db
    username: sa
    password: sa
    driverClassName: org.testcontainers.jdbc.ContainerDatabaseDriver

这些是唯一的更改和 micronaut 处理测试容器的创建和启动。

问题

对于每个测试类,它都会创建新的容器。 测试花费的大部分时间是在容器创建中。

有没有办法重复使用容器? (清除数据库可能仍然没问题)

解决方法

迟到的回复,但以防万一有人偶然发现。

尝试将 TC_REUSABLE=true 添加到 jdbc URL 中

即:jdbc:tc:sqlserver://localhost;databaseName=test-db/TC_INITSCRIPT=db/customer_database_schema.sql&TC_REUSABLE=true

,

另一个答案可能是正确的。

我使用 jdbc URL 中的 TC_DAEMON=true 参数使其工作

这样就变成了

url: jdbc:tc:sqlserver://localhost;databaseName=mydb?TC_DAEMON=true

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...