4.4. 使用内存数据库进行测试
使用您要在生产环境中使用的数据库,容器技术使其易于实现。也可以使用 JVM 电源的数据库运行集成测试。H2 和 Derby 数据库通常用于运行集成测试的嵌入式模式。
嵌入式引擎将以 JVM 模式正常工作,但无法编译到原生可执行文件中。Quarkus 不支持将整个数据库引擎嵌入到原生可执行文件中。
如果要在 JVM 和/或原生可执行文件中运行集成测试,您可以在集成测试中的任何类中添加 @QuarkusTestResource(H2DatabaseTestResource.class)或 @QuarkusTestResource(DerbyDatabaseTestResource.class)。现在,测试套件可以作为一个独立的进程启动和停止嵌入的数据库,以便运行测试。
@QuarkusTestResource(H2DatabaseTestResource.class)和 @QuarkusTestResource(DerbyDatabaseTestResource.class)由具有 Maven 协调 io.quarkus:quarkus-test-h2 和 io.quarkus:quarkus-test-derby、分别用于 H2 和 Derby 的工件提供。
以下示例演示了如何为 H2 数据库使用帮助程序:
这样,即使应用程序被编译成原生可执行文件,但数据库将在 JVM 中运行。
使用以下方法连接到它:
quarkus.datasource.db-kind=h2 quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test
quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test