2

我正在使用 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 处理测试容器的创建和启动。

问题

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

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

4

2 回答 2

2

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

尝试将 TC_REUSABLE=true 添加到 jdbc URL

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

于 2021-06-30T20:06:17.873 回答
0

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

我让它使用TC_DAEMON=truejdbc URL 中的参数

所以,它变成

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

编辑

最终我离开了测试容器,现在手动开始使用 docker

于 2021-07-01T13:06:45.153 回答