Maven Surefire 3.0.0-M5在Quarkus项目中无法识别JUnit5测试
Quarkus项目Maven构建未识别JUnit5测试解决方案
该问题通常由maven-surefire-plugin里程碑版本兼容性缺陷、Quarkus测试依赖缺失、测试类/方法不符合识别规则三类原因导致,可按以下步骤逐一排查解决:
- 第一步:修正maven-surefire-plugin配置
3.0.0-M5属于里程碑版本,对JUnit5的原生支持存在兼容性缺陷,建议优先升级到稳定版,若必须保留该版本,需补充JUnit5平台provider依赖。参考配置如下:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <!-- 优先使用稳定版,无需额外加provider依赖 --> <version>3.2.5</version> <!-- 若必须使用3.0.0-M5,放开下面的依赖配置 --> <!-- <dependencies> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-surefire-provider</artifactId> <version>1.9.3</version> </dependency> </dependencies> --> </plugin> - 第二步:补充Quarkus专用测试依赖
Quarkus项目的测试需要依赖框架提供的集成包,仅引入原生JUnit5依赖无法被识别,需在pom.xml中添加如下依赖。添加该依赖后可删除pom中单独声明的junit-jupiter、junit-jupiter-engine依赖,避免版本冲突。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-junit5</artifactId> <scope>test</scope> </dependency> - 第三步:检查测试类与方法规则
确认所有测试满足以下要求:- 测试类存放在
src/test/java目录下 - 测试类命名符合Surefire默认规则:
*Test.java、*Tests.java、*TestCase.java - 测试方法添加
org.junit.jupiter.api.Test注解(不要误用JUnit4的org.junit.Test注解)
- 测试类存放在
- 第四步:重新执行构建
执行mvn clean test清理历史缓存后重新运行测试,即可正常识别用例。
内容的提问来源于stack exchange,提问作者Tarun Singh
相关产品推荐
相关产品推荐

