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

Quarkus开发模式下测试无法动态增删修改的问题咨询

Quarkus测试不生效问题解决方案

问题描述

使用Quarkus 3.10.2版本,基于官方示例项目搭建,仅依赖quarkus-rest-jaxb及测试依赖,遇到以下问题:

  • 执行quarkus:dev时,仅加载初始的GreetingResourceTest,新增、修改或删除测试后,即使重启进程也无法生效;
  • 执行mvn clean package时,仅运行GreetingResourceTest中的测试,新增测试完全不执行。
    预期符合《Quarkus-For-Spring-Developers》书中描述的持续测试功能:

要启用持续测试,返回终端执行./mvnw quarkus:dev。Quarkus横幅出现后,注意终端底部的文本:Tests paused, press [r] to resume。
返回终端,会看到Quarkus自动成功运行测试,且仅运行刚创建的测试,不会重新运行GreetingResourceTest.java类中的现有测试。

解决步骤

1. 检查测试类规范

  • 测试类必须以Test结尾,比如UserResourceTest.java,不符合命名规则的类会被Quarkus测试框架忽略;
  • 测试类必须放在src/test/java目录下,包路径可与主代码对应或自定义,但不能放在主源码目录src/main/java;
  • 测试类必须添加@QuarkusTest注解,这是Quarkus集成测试的核心标识,缺少该注解的类不会被识别。

2. 开发模式持续测试配置

  • 打开src/main/resources/application.properties,确认没有禁用持续测试:
    若存在quarkus.test.continuous-testing=disabled,改为quarkus.test.continuous-testing=enabled或直接删除该配置;
  • 启动quarkus:dev后,终端底部会显示Tests paused, press [r] to resume,按小写r恢复持续测试;
  • 修改测试文件并保存后,Quarkus会自动触发对应测试执行;若未触发,按大写R强制重新扫描并运行所有测试。

3. Maven打包测试配置检查

  • 打开项目pom.xml,检查maven-surefire-plugin的配置,若存在指定仅运行GreetingResourceTest的<includes>规则,需调整为通用规则:
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${surefire-plugin.version}</version>
      <configuration>
        <!-- 确保包含所有以Test结尾的测试类 -->
        <includes>
          <include>**/*Test.java</include>
        </includes>
      </configuration>
    </plugin>
    
  • 执行mvn clean test单独运行测试,查看控制台输出,确认新增测试是否被识别并执行。

内容的提问来源于stack exchange,提问作者Ed .d

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:55:02