2016-03-11 19 views
5

Errore di Error: no display specified durante l'esecuzione di test di framework di gioco in Jenkins sul server FreeBSD. Così ogni volta che affronto con timeoutEsecuzione headless firefox Xvfb con Jenkins per eseguire test di selenio

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox

Jenkins ha:

1) Xvfb plugin installato

2) Gioca Framework installato

I test sono scritti utilizzando biblioteca seleniuro e seleniuro modulo per la struttura del gioco.

Xvfb configurato e abilitato nella configurazione del lavoro.

Job console di output è: configurazione

Checking out Revision 3f485bd2e3dbcfa058fc19f89ab18020e36707d8 (origin/trunk) 
... 
Xvfb starting$ /usr/local/bin//Xvfb :1 -screen 0 -fbdir /usr/local/jenkins/xvfb-9-786185694297443042.fbdir 
... 
Command detected: clean 
Command detected: deps --sync 
Command detected: precompile 
Command detected: auto-test 
[YalsTests] $ /srv/java/play/play clean 
... 
~ using java version "1.8.0_72" 
[YalsTests] $ /srv/java/play/play auto-test 
~ 14 tests to run: 
~ 
~ selenium/front/CorrectInput...   org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: 
Error: no display specified 

    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:113) 
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:271) 

lavoro:

[X] Start Xvfb before the build, and shut it down after. 
Xvfb specific display name 1 
Xvfb display name offset 0 

Invoke Play Framework  
Command set  Play 1.x 
Goals 
    Clean project [clean] 
    Custom parameter 
     Custom command deps --sync 
    Precompile all Java sources and templates [precompile] 
    Automatically run all application tests [auto-test] 

risposta

1

I compiti di selenio ha bisogno di conoscere il DISPLAY che deve connettersi. Puoi impostarlo ad es. come una variabile d'ambiente (non dimenticare di esportare, se lo fai in .profile)

export DISPLAY=:10 

Questo è per bash, altre shell potrebbe essere necessario un processo di 2 passo:

DISPLAY=:10 
export DISPLAY 

È può anche specificare la variabile nella riga di comando prima del comando:

DISPLAY=:10 java -jar mySelenium.jar 
0

Si potrebbe evitare tutti questi problemi utilizzando Selenoid progetto che inizia browser senza testa in parallelo in Docker contenitori. Le immagini del contenitore vengono create considerando la versione compatibile di webdriver e browser. Includono anche font, flashplayer e così via. Basta scegliere uno dei già esistenti images ed eseguire i test. Non è necessario installare Java per eseguire test Selenium.