使用gitlabci进行GUI测试(java swing)时出现无头异常
我有一个运行gitlab runner的虚拟服务器。 我现在添加了一些GUI单元测试,这些测试在我的pc上运行良好,但在虚拟服务器上运行不好
它总是以以下方式退出:
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
你知道如何使用gitlab ci来运行它吗
编辑:
我的虚拟服务器正在运行centos 7
这是我现在的工作。gitlab ci。yml
image: kaiwinter/docker-java8-maven
#maven:3-jdk-7
before_script:
- "Xvfb :99 &"
- "export DISPLAY=:99"
maven_build:
stage: build
script:
- "mvn clean package"
- "cat target/site/jacoco/index.html"
现在,headlessexception消失了,但由于awt异常,基本上所有单元测试都失败了,如: 无法初始化java类。awt。形象IndexColorModel
编辑2: 我添加了建议的无头选项:
image: kaiwinter/docker-java8-maven
#maven:3-jdk-7
before_script:
- "Xvfb :99 &"
- "export DISPLAY=:99"
maven_build:
stage: build
script:
- "mvn clean package -Djava.awt.headless=true"
- "cat target/site/jacoco/index.html"
现在我又得到了无头例外
# 1 楼答案
我终于找到了解决办法
我已经创建了一个DOCKER映像,用于GUI测试(使用xvfb,感谢vbuhlev): https://github.com/thorstenwagner/docker-java8-maven
在公园里。gitlab ci。yml我添加了以下行:
# 2 楼答案
您需要启用无头模式:
# 3 楼答案
您可以尝试使用xvfb程序,如本文http://elementalselenium.com/tips/38-headless
我使用xvfb从文本终端运行浏览器。你的情况基本相同
问题是您的程序希望在窗口环境中运行,但您是从文本终端运行它