2015-03-03 30 views
5

Sto provando a eseguire alcuni test su Travis CI che richiedono un server che sia, err ... Non senza testa. Come puoi dire, conosco così poco l'area che non conosco nemmeno la terminologia giusta da usare.Travis CI - Esegui test LWJGL in ambiente senza testa?

I test utilizzano LibGDX e LWJGL. Essi funzionano bene sul mio desktop (Windows 8 e Ubuntu), ma sorprende che non riescono a 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) 

Posso fare qualcosa con Travis CI per farlo pensare che ha un display corretta? Anche se questo non è possibile con Travis CI, c'è un approccio generico che potrei prendere con un'altra VM su cui ho più controllo?

+0

Hai provato imitazione del monitor come 'xvfb' come consigliato nella documentazione Travis CI : http://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-xvfb-to-Run-Tests-That-Require-GUI-(eg-a-Web-browser)? – Rara

+0

Grazie per il puntatore. Non è stato risolto il problema (la LWJGL non sembra aver notato il cambiamento), ma mi ha sicuramente indotto a indagare. –

risposta

4

Questo può essere fatto con xvfb. Nel vostro travis.yml, aggiungere questo:

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

Si dovrà installare Xvfb se non lo avete già. Potrebbe anche essere necessario installare le altre librerie/pacchetti necessari ai test sulla VM (ad esempio per i test delle app Web, è necessario un browser).

+0

@Deejay Volevo solo ricontrollare con te ... hai avuto la possibilità di provarlo? Qual è stato l'errore, se presente? – GlobalVariable

+0

Ho lo stesso problema e provare questo answer.I ancora ottenere l'errore Exception in thread "LWJGL Applicazione" java.lang.ExceptionInInitializerError \t a com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync (LwjglGraphics.java:446) Causato da: org.lwjgl.LWJGLException: non è disponibile alcuna estensione della modalità di visualizzazione – htynkn

1

L'avvio di un framebuffer virtuale (xvfb) su Travis CI non è sufficiente. Se hai bisogno di OpenGL> 1.4 devi anche installare libgl1-mesa-swx11, libgl1-mesa-swx11-dev.

Nel mio travis.yml ho messa a punto OpenGL e iniziare 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 

l'intero file e ': https://github.com/mwohlf/pluto/blob/master/.travis.yml