4.4. 使用内存数据库进行测试


使用您要在生产环境中使用的数据库,容器技术使其更易于实现。也可以使用 JVM 驱动数据库运行集成测试。H2 和 Derby 数据库通常用在嵌入式模式下运行集成测试。

嵌入式引擎将以 JVM 模式正常工作,但无法编译到原生可执行文件。Quarkus 不支持将整个数据库引擎嵌入到原生可执行文件中。

如果要在 JVM 和/或原生可执行文件中运行集成测试,您可以在集成测试中的任何类上添加 @QuarkusTestResource(H2DatabaseTestResource.class)或 @QuarkusTestResource(DerbyDatabaseTest.class)。测试套件现在可以启动和停止嵌入的数据库,作为运行测试所需的单独进程。

@QuarkusTestResource(H2DatabaseTestResource.class)和 @QuarkusTestResourceResource(DerbyDatabaseTestResource.class)由具有 Maven 协调 io.quarkus:quarkus-h2io.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 {
}
Copy to Clipboard Toggle word wrap

这可让您在应用程序编译为原生可执行文件时测试应用程序,而数据库也会照常在 JVM 中运行。

使用以下命令连接到它:

quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat