如何仅在测试环境中启用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
相关产品推荐
相关产品推荐

