我正在尝试编写一个github动作工作流来运行quarkus应用程序的测试。但是,当运行quarkus测试时,它会运行所有测试,然后显示命令提示符并要求更多命令。这会导致作业挂起在github上,并无限期地运行。我不知道如何让quarkus运行所有的测试,然后退出。
以下是我当前的.yml文件:
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: mvn -B package --file pom.xml
- name: Test with Quarkus
run: ./mvnw quarkus:test -Dquarkus.test.disable-continuous-testing=true
字符串
1条答案
按热度按时间2ic8powd1#
quarkus:test
命令实际上是用于本地、交互式、连续的测试。该命令的优点是它将检测代码更改并自动重新运行受影响的测试。这在本地很棒但在线人那里就说不通了要在“正常”模式下运行Quarkus测试,只需运行正常的maven命令即可,例如
mvn install
或mvn verify
。在您的例子中,mvn package
应该已经运行了测试,但是您可以通过故意提交一个失败的测试并确认构建失败来进行确认。我很确定
quarkus.test.disable-continuous-testing
选项不存在。我想它可能与quarkus.test.continuous-testing=disabled
混淆了,quarkus.test.continuous-testing=disabled
确实存在。如果您使用quarkus:dev
(它运行应用程序,也可以连续运行测试)运行,但只想实时重新加载应用程序,并且绝对不想测试,那么该选项通常是有用的。对于您的场景,我只需要从您的工作流文件中删除
./mvnw quarkus:test -Dquarkus.test.disable-continuous-testing=true
行。这将避免交互式会话,Quarkus测试将在前面的maven步骤中运行。