在 Headless 环境中测试 Swing 元素 (gitlab CI)

Testing Swing elements in a Headless Environment (gitlab CI)

我有一个使用 gitlab 的 CI 的 gradle 项目,不幸的是使用任何 Swing 类 结果:
java.awt.AWTException:无头环境

我在 Easiest way to unit test SWT and Swing apps in a headless environment? 找到了一个提到使用 Xvfb 的答案,这似乎可行,但没有详细说明,因为有一个特定于工具的更简单的选项。如果 Xvfb 可以工作,我的项目中需要如何配置它?我找不到 gitlab/gradle 的任何资源。是否有特定于 gitlab 的更简单的选项?

所以我找到了一个行之有效的解决方案。我最终创建了自己的 Docker 图片:

FROM alpine:3.10
RUN apk update
RUN apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
RUN apk add xvfb-run

然后我只需要更新我的 .gitlab-ci.yml 即可使用该图像:

image: jeffreydm/xvfb-java:v0.1

最后,我更新了我的脚本:

build:
  stage: build
  script:
    - ./gradlew build

至:

build:
  stage: build
  script:
    - xvfb-run ./gradlew build