yml travis generate deploy create cli java libgdx lwjgl travis-ci headless

java - generate - Travis CI-¿Ejecutar pruebas LWJGL en entornos sin headless?



travis download (2)

Esto se puede hacer con xvfb. En su travis.yml, agregue esto:

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

Tendrá que instalar xvfb si aún no lo tiene. También puede que tenga que instalar los otros libs / packages necesarios para sus pruebas en la VM (por ejemplo, para las pruebas de la aplicación web, necesitaría un navegador).

Estoy tratando de ejecutar algunas pruebas en Travis CI que requieren un servidor que es, err ... No sin cabeza. Como puede ver, sé muy poco sobre el área que ni siquiera conozco la terminología correcta para usar.

Las pruebas usan LibGDX y LWJGL. Funcionan bien en mi escritorio (Windows 8 y Ubuntu), pero no sorprende que fallen en 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)

¿Puedo hacer algo con Travis CI para que piense que tiene una pantalla adecuada? Incluso si esto no es posible con Travis CI, ¿existe un enfoque genérico que quizás podría tomar con otra VM sobre la que tengo más control?


Iniciar un virtual framebuffer (xvfb) en Travis CI no es suficiente. Si necesita OpenGL> 1.4, también necesita instalar libgl1-mesa-swx11, libgl1-mesa-swx11-dev.

En mi travis.yml configuro OpenGL y comienzo xvfb con:

- 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

el archivo completo está en: https://github.com/mwohlf/pluto/blob/master/.travis.yml