Quarkus Reactive Hibernate测试报MySQL JDBC驱动缺失错误排查
解决Quarkus Reactive Hibernate测试找不到MySQL驱动的问题
1. 统一测试环境的数据源配置
你当前仅在prod环境设置了quarkus.datasource.jdbc=false,但测试用例默认使用test环境,需在application-test.properties中补充完整的Reactive数据源配置:
# 禁用JDBC模式,启用Reactive数据源 quarkus.datasource.jdbc=false # 配置Reactive MySQL连接地址 quarkus.datasource.reactive.url=mysql://localhost:3306/你的数据库名 # 数据库账号密码 quarkus.datasource.reactive.username=你的用户名 quarkus.datasource.reactive.password=你的密码 # 指定Reactive驱动类 quarkus.datasource.reactive.driver=io.vertx.mysqlclient.MySQLDriver
2. 确保测试依赖完整
在pom.xml中补充测试环境的Reactive MySQL客户端依赖(若主依赖未覆盖测试场景):
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-mutiny-vertx-mysql-client</artifactId> <scope>test</scope> </dependency>
3. 配置Hibernate Reactive适配项
在测试配置文件中添加Hibernate Reactive的方言设置,避免它尝试加载JDBC驱动:
# 指定MySQL的Reactive方言 quarkus.hibernate-orm.dialect=org.hibernate.reactive.mutiny.MySQLMutinyDialect # 清空JDBC相关配置,防止冲突 quarkus.hibernate-orm.jdbc.url= quarkus.hibernate-orm.jdbc.driver=
4. 规范测试类的数据源注入
测试类中使用Reactive风格的SessionFactory而非传统EntityManagerFactory:
@Inject Mutiny.SessionFactory sessionFactory;
内容的提问来源于stack exchange,提问作者J M Patel
相关产品推荐
相关产品推荐

