4.4. 使用内存数据库进行测试
使用您要在生产环境中使用的数据库,容器技术使其更易于实现。也可以使用 JVM 驱动数据库运行集成测试。H2 和 Derby 数据库通常用在嵌入式模式下运行集成测试。
嵌入式引擎将以 JVM 模式正常工作,但无法编译到原生可执行文件。Quarkus 不支持将整个数据库引擎嵌入到原生可执行文件中。
如果要在 JVM 和/或原生可执行文件中运行集成测试,您可以在集成测试中的任何类上添加 @QuarkusTestResource(H2DatabaseTestResource.class)或 @Quarkusclass)。测试套件现在可以启动和停止嵌入的数据库,作为运行测试所需的单独进程。
TestResource(DerbyDatabaseTest.
@QuarkusTestResource(H2DatabaseTestResource.class)和 @QuarkusTestResourceResource(DerbyDatabaseTestResource.class)由具有 Maven 协调 io.quarkus:quarkus-h2 和 io.quarkus:quarkus:quarkus-test-test-test er 的工件提供。
以下示例演示了如何为 H2 数据库使用帮助程序:
package my.app.integrationtests.db;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.h2.H2DatabaseTestResource;
@QuarkusTestResource(H2DatabaseTestResource.class)
public class TestResources {
}
这可让您在应用程序编译为原生可执行文件时测试应用程序,而数据库也会照常在 JVM 中运行。
使用以下命令连接到它:
quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test