continuous-integration - 如何在 headless (headless)环境中测试 JavaFX 2?

标签 continuous-integration automated-tests javafx-2 headless xvfb

我正在尝试使用集成的 JavaFX 2.2 自动测试在 Java 7u6 上运行的 JavaFX 2 应用程序。
为此,我构建并集成了 Jemmy3JemmyFX进入我的构建环境。
一个简单的冒烟测试在所有相关操作系统上运行。

作为下一步,我想在持续部署过程中运行测试。
由于当前的 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知识并问
  • 你知道如何解决上述错误吗?
  • 您是否在( headless (headless))CI 服务器上成功运行了 JavaFX 2 测试或机器人交互?
  • 您是如何配置该系统以使其正常工作的?
  • 最佳答案

    我有一个类似的问题 - 在 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/

    相关文章:

    docker - 无法找到一种通过在before脚本属性中运行的脚本来设置一个或多个作业的变量的方法

    ios - 是否可以为 iOS 应用程序开发设置持续集成和持续部署?

    android - Android开发中的自动化测试

    java - 如何使用 selenium 或 webdriver 在测试自动化中处理文件上传

    exception - 如何在 Test Cafe 错误中获取完整的堆栈跟踪

    java - 双击行时无法触发 MouseEvent

    java - 将多个jar合并为一个(使用maven)

    java - 持续集成——git flow

    git - Jenkins 使用 Publish over SSH 插件传输 0 个文件

    javafx - 输入键事件在 Javafx 对话框中不起作用?