特拉维斯CI - 在非无头环境中进行LWJGL测试?

时间:2015-03-03 16:39:28

标签: java libgdx lwjgl travis-ci headless

我正在尝试对需要服务器的Travis CI进行一些测试,错误...... 无头。正如你所知,我对这个领域知之甚少,我甚至不知道使用正确的术语。

测试使用LibGDX和LWJGL。它们在我的桌面上工作正常(Windows 8和Ubuntu),但在Travis CI中出人意料地失败了:

Could not initialize class org.lwjgl.Sys
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
    at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:446)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:118)

我可以对Travis CI做任何事情让它认为它有正确的显示吗?即使Travis CI无法做到这一点,我是否可以采用通用方法与另一个VM进行更多控制?

2 个答案:

答案 0 :(得分:4)

这可以使用xvfb完成。在你的travis.yml中,添加:

before_script:
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start

如果你还没有安装xvfb,你必须安装它。您可能还必须在VM上安装测试所需的其他库/包(例如,对于Web应用程序测试,您需要一个浏览器)。

答案 1 :(得分:1)

在Travis CI上启动虚拟帧缓冲区(xvfb)是不够的。如果你需要OpenGL&gt; 1.4你还需要安装libgl1-mesa-swx11,libgl1-mesa-swx11-dev。

在我的travis.yml中,我设置了OpenGL并用:

启动xvfb
- sudo apt-get install -qq --force-yes mesa-utils libgl1-mesa-swx11 libgl1-mesa-swx11-dev xvfb  
- /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1400x900x24 -ac +extension GLX +render

整个文件位于: https://github.com/mwohlf/pluto/blob/master/.travis.yml