我正在尝试对需要服务器的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进行更多控制?
答案 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