user-interface - 使用 xvfb 在 GitHub 上运行 Java GUI 测试
问题描述
我为我的 Java 桌面应用程序进行了一些基本的自动化 GUI 测试,这些测试在我的 Windows 桌面上运行时可以工作。在 GitHub 上,他们失败了
X11GraphicsEnvironment.java 处的 java.awt.AWTError:-2
我从默认Java CI with Gradle
工作流程开始,并添加了一些步骤来尝试设置 xvfb,以便它有一个可以使用的显示器,但它仍然失败。有没有办法可以修改工作流程以便 X11 可用于测试?
name: Java CI with Gradle
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Set up virtual X11
run: sudo apt-get install xvfb
- name: Start virtual frame buffer
run: Xvfb :19 -screen 0 1024x768x16 &
- name: set display
run: export DISPLAY=:19
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
解决方案
我最终使用 JUnit 拆分 GUI 测试@Tag
,然后添加单独的 gradle 任务:
task nonGuiTest(type: Test) {
useJUnitPlatform {
excludeTags 'gui'
}
}
task guiTest(type: Test) {
useJUnitPlatform {
includeTags 'gui'
}
}
然后在工作流程中
- 我
build -x test
最初运行 - 然后运行非 GUI 测试
- 然后使用该
GabrielBB/xvfb-action@v1
动作设置 xvfb - 然后运行 GUI 测试
name: Java CI with Gradle
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build -x test
- name: headless tests
run: ./gradlew nonGuiTest
- name: GUI tests
uses: GabrielBB/xvfb-action@v1
with:
run: ./gradlew guiTest
推荐阅读
- sas - 如何根据不同的条件从数字键中隔离选择的数字?
- r - 在 R Shiny Markdown 中渲染 3d 图
- javascript - 如何使 Shift + Enter 在内容可编辑的 div 中表现得像 Enter 一样?
- ios - iOS Core Data 乐观锁失败误报
- c++ - How to apply mutexes when passing by value?
- python - When using df.drop in pandas make the index of rows shift
- python - 使用单元链接函数运行代码(在 Google Colab 笔记本中)
- assembly - Byte Storage in a Cpu Register: where is AL inside RAX?
- reactjs - 如何在反应中改变边框颜色?
- python - OSError: [Errno 8] Exec 格式错误 - 启动 Flask 应用程序时