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
相关产品推荐
相关产品推荐

