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-h2io.quarkus:quarkus-test-derby、分别用于 H2 和 Derby 的工件提供。

以下示例演示了如何为 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