You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅在测试环境中启用Quarkus DevServices

问题:仅在测试环境启用DevServices时出现数据源配置错误

配置说明

我希望只在测试阶段运行DevServices,因此做了以下配置:

src/main/resources/application.properties(生产环境)

quarkus.datasource.db-kind = postgresql
quarkus.datasource.username = ${USERNAME}
quarkus.datasource.password=${PASSWORD}
quarkus.datasource.jdbc.url = jdbc:postgresql://...
quarkus.devservices.enabled=false

src/test/resources/application.properties(测试环境)

%test.quarkus.datasource.devservices.enabled=true
%test.quarkus.devservices.enabled=true
%test.quarkus.datasource.db-kind=postgresql
%test.quarkus.datasource.username =
%test.quarkus.datasource.password=
%test.quarkus.datasource.jdbc.url =

测试启动时的错误

启动测试时抛出以下异常:

Caused by: io.quarkus.runtime.configuration.ConfigurationException: Model classes are defined for the default persistence unit <default> but configured datasource <default> not found: the default EntityManagerFactory will not be created. To solve this, configure the default datasource.
        at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.injectDataSource(FastBootHibernatePersistenceProvider.java:372)
        at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.buildRuntimeSettings(FastBootHibernatePersistenceProvider.java:212)
        at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(FastBootHibernatePersistenceProvider.java:183)
        at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.createEntityManagerFactory(FastBootHibernatePersistenceProvider.java:66)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:80)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
        at io.quarkus.hibernate.orm.runtime.JPAConfig$LazyPersistenceUnit.get(JPAConfig.java:165)
        at io.quarkus.hibernate.orm.runtime.JPAConfig$1.run(JPAConfig.java:66)
        at java.base/java.lang.Thread.run(Thread.java:829)

临时有效操作

删除src/main/resources/application.properties中的数据源配置后,Quarkus能够正确配置测试容器,测试正常运行。

环境版本

  • Quarkus版本:2.13.3.Final
  • Java版本:
openjdk version "11.0.27" 2025-04-15
OpenJDK Runtime Environment (build 11.0.27+6-post-Ubuntu-0ubuntu124.04)
OpenJDK 64-Bit Server VM (build 11.0.27+6-post-Ubuntu-0ubuntu124.04, mixed mode, sharing)

内容的提问来源于stack exchange,提问作者Egor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:25:11