4.4. 使用内存数据库进行测试
使用您要在生产环境中使用的数据库,容器技术使其更易于实现。也可以使用 JVM 驱动数据库运行集成测试。H2 和 Derby 数据库通常用在嵌入式模式下运行集成测试。
嵌入式引擎将以 JVM 模式正常工作,但无法编译到原生可执行文件。Quarkus 不支持将整个数据库引擎嵌入到原生可执行文件中。
如果要在 JVM 和/或原生可执行文件中运行集成测试,您可以在集成测试中的任何类上添加 @QuarkusTestResource
(H2DatabaseTestResource.class
)或 @Quarkus
class)。测试套件现在可以启动和停止嵌入的数据库,作为运行测试所需的单独进程。
TestResource
(DerbyDatabaseTest.
@QuarkusTestResource
(H2DatabaseTestResource.class
)和 @QuarkusTestResource
Resource(DerbyDatabaseTestResource.class
)由具有 Maven 协调 io.quarkus:quarkus-h2
和 io.quarkus:quarkus:quarkus-test-test-test
er 的工件提供。
以下示例演示了如何为 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