我正在尝试使用集成的 JavaFX 2.2 自动测试在 Java 7u6 上运行的 JavaFX 2 应用程序。
为此,我构建并集成了 Jemmy3和 JemmyFX进入我的构建环境。
一个简单的冒烟测试在所有相关操作系统上运行。
作为下一步,我想在持续部署过程中运行测试。
由于当前的 CI 服务器运行在 OpenSUSE 上,JavaFX 并未正式支持,
我已经在虚拟机中安装了 Ubuntu Server 并安装了 gtk2。
为了弥补缺乏完全成熟的窗口系统的问题,我尝试在 Xvnc 和 Xvfb 上运行测试,但无济于事。
在 Xvnc 上,测试失败
Prism ES2 Error - nInitialize: glXChooseFBConfig failed
而在 Xvfb 上,他们给了我
Xlib: extension "RANDR" missing on display ":10".
一个 blog post建议安装
gtk-engines-pixbuf
缓解第二个问题,但这只是改变了错误消息中显示的数量。现在,我召唤StackOverflow的JavaFX知识并问
最佳答案
我有一个类似的问题 - 在 Maven 的 headless (headless)环境中运行 JUnit 测试。
我们不使用 JemmyFX。我们只有非常简单的测试,它们使用类似于以下的 JUnit 规则:
https://gist.github.com/andytill/3835914
(这是使用 Platform.runLater(...) 的代码所必需的)
当前版本的 JavaFX(随 JDK 1.7.0-21 提供)似乎可以在 Ubuntu 12.04 上的 Xvfb 中运行,而无需运行 Xserver:
Xvfb :99
DISPLAY=:99 mvn clean install
关于continuous-integration - 如何在 headless (headless)环境中测试 JavaFX 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194436/