我正在编写一个TestFX测试用例,以涵盖一个Java桌面应用程序。其中一个交互调用showDocument()以使用浏览器显示html文档。当使用Gradle在本地运行测试时,我的测试工作正常。但是,当我在Jenkins上运行它(使用MacOS代理)时,测试失败。
14:55:10 java.awt.HeadlessException
14:55:10 at java.desktop/java.awt.Desktop.getDesktop(Desktop.java:301)
14:55:10 at javafx.graphics/com.sun.javafx.application.HostServicesDelegate$StandaloneHostService.showDocument(HostServicesDelegate.java:133)
14:55:10 at javafx.graphics/javafx.application.HostServices.showDocument(HostServices.java:115)该问题是在桌面检查GraphicsEnvironment.isHeadless()时引起的
为什么会发生这个错误?我读到当没有图形用户界面可用(显示器、键盘、鼠标),但我的代理确实有图形用户界面时,就会发生HeadlessException。此测试在Windows代理上工作正常,但在MacOS上无法正常工作。如何避免此错误并在Jenkins上执行自动化测试?
发布于 2021-06-23 03:05:39
解决方案是更改Jenkins上的节点启动方法。它们是使用SSH连接的,并将其更改为连接到主服务器解决了这个问题(ssh不传递GUI并将其直接连接到主服务器)。
https://stackoverflow.com/questions/67993552
复制相似问题