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

Quarkus应用GitHub Actions测试工作流挂起问题求助

解决Quarkus测试在GitHub Actions中挂起的问题

可能的原因及解决方法

1. 调整Quarkus测试模式参数

你已尝试-Dquarkus.test.disable-continuous-testing=true,但部分Quarkus版本需改用更明确的参数写法彻底关闭持续测试模式:

./mvnw quarkus:test -Dquarkus.test.continuous-testing=disabled

该参数直接将持续测试设为禁用状态,避免命令执行完后停留在交互等待环节。

2. 切换为Maven标准测试目标

若quarkus:test目标仍存在挂起问题,可直接使用Maven标准test目标运行测试,它会在所有测试完成后自动退出:

./mvnw test

这种方式更适配CI环境的非交互需求,无需额外配置持续测试相关参数。

3. 排查测试资源泄漏

如果上述方法无效,大概率是测试代码存在未正确关闭的资源(如线程、数据库连接、WebSocket连接等),导致JVM无法正常退出。可采取以下措施:

  • 检查所有测试类的@AfterEach/@AfterAll方法,确保资源已全部关闭
  • 添加参数强制测试完成后终止JVM:
./mvnw quarkus:test -Dquarkus.test.disable-continuous-testing=true -Dquarkus.test.exit-after-test=true

4. 统一Maven命令使用方式

你的工作流中同时混用mvn和./mvnw,建议统一使用其中一种,避免潜在环境差异问题,比如全部改用./mvnw。

修改后的完整工作流示例

name: Java CI with Quarkus

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 17
        uses: actions/setup-java@v2
        with:
          java-version: '17'
          distribution: 'adopt'
      - name: Cache Maven packages
        uses: actions/cache@v2
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2
      - name: Build with Maven
        run: ./mvnw -B package --file pom.xml
      - name: Test with Quarkus
        run: ./mvnw quarkus:test -Dquarkus.test.continuous-testing=disabled

内容的提问来源于stack exchange,提问作者jf743

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:57:47