Quarkus升级后测试被跳过,显示‘未找到测试’问题求助
问题:Quarkus升级后测试被跳过无法运行
使用quarkus update命令将Quarkus从3.17.8版本升级到3.21.3版本,升级过程无报错,但测试无法正常执行,提示“未找到测试”。
为排查问题,编写了极简测试类SampleTest:
package com.flowt.central; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; @QuarkusTest public class SampleTest { @Test public void test1() { System.out.println("running test1"); assert(true); } }
执行mvn clean install时,测试被跳过,日志如下:
[INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.flowt.central.SampleTest [WARNING] Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.003 s -- in com.flowt.central.SampleTest [INFO] [INFO] Results: [INFO] [WARNING] Tests run: 1, Failures: 0, Errors: 0, Skipped: 1
回退到3.17.8版本后测试可正常运行,但升级到3.18.1及更高版本时,测试均会被跳过。
创建使用3.21.3版本的全新Quarkus项目,默认测试及上述示例测试均可正常执行。对比新旧项目的pom.xml内容及版本号,未发现明显差异;查阅Quarkus发布说明,也未找到需要调整的配置项。当前项目pom.xml的properties配置如下:
<properties> <compiler-plugin.version>3.14.0</compiler-plugin.version> <maven.compiler.release>17</maven.compiler.release> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id> <quarkus.platform.version>3.21.3</quarkus.platform.version> <skipITs>true</skipITs> <surefire-plugin.version>3.5.2</surefire-plugin.version> </properties>
项目在DEV模式下可正常作为前端Vue应用的端点使用,仅测试环节出现问题。
调试思路
- 检查Surefire插件的实际配置:执行
mvn help:describe -Dplugin=surefire -Ddetail,查看插件生效的完整配置,确认是否存在skipTests默认开启、测试类匹配规则异常等情况。 - 分析测试依赖树:执行
mvn dependency:tree,检查JUnit 5相关依赖(如junit-jupiter-api、junit-jupiter-engine)的版本、scope是否正确,是否存在依赖冲突。 - 验证测试类编译结果:查看
target/test-classes目录下是否生成了SampleTest.class文件,确认编译过程无异常,maven-compiler-plugin配置适配Java 17。 - 开启Surefire调试日志:执行
mvn clean test -X,通过详细日志定位测试被跳过的具体原因,比如是否识别到测试方法、是否存在类加载问题、是否触发了特定跳过条件。 - 检查Quarkus扩展兼容性:确认项目中使用的其他Quarkus扩展(如数据库、缓存等)在3.18+版本中与测试扩展的兼容性,部分扩展可能在新版本中改变了测试阶段的行为。
- 对比完整pom差异:除properties节点外,检查
build/plugins、dependencyManagement等节点,查看旧项目是否存在自定义配置(如测试环境profile、插件额外参数)与新版本冲突。
内容的提问来源于stack exchange,提问作者Murrah
相关产品推荐
相关产品推荐

