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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:04:56