2016-03-11 23 views
5

Ich Gesicht mit Error: no display specified Fehler beim Ausführen spielen Framework-Tests in Jenkins auf FreeBSD-Server. jedes Mal So begegne ich mit TimeoutRunning headless firefox Xvfb mit Jenkins Selen-Tests

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

Jenkins hat:

1) Xvfb Plugin installiert

2) Wiedergabe Rahmen

installiert

Tests verwenden Elenid Bibliothek und Selenid geschrieben Modul für Spiel-Framework.

Xvfb in der Jobkonfiguration konfiguriert und aktiviert.

Job Konsolenausgabe ist:

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) 

Job-Konfiguration:

[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] 

Antwort

1

Die Selen Aufgaben muss die Anzeige wissen, dass es eine Verbindung soll. Sie können es z. als Umgebungsvariable (vergessen Sie nicht, es zu exportieren, wenn Sie, dass in .profile tun)

export DISPLAY=:10 

Diese für bash ist, andere Schalen könnte ein 2-Stufen-Verfahren benötigen:

DISPLAY=:10 
export DISPLAY 

Sie kann auch die Variable in der Befehlszeile vor dem Befehl angeben:

DISPLAY=:10 java -jar mySelenium.jar 
0

Sie all diese Fragen mit Hilfe Selenoid Projektes vermeiden könnten, die inparallel headless Browser startetBehälter. Containerbilder werden erstellt, indem eine kompatible Version von Webdriver und Browser berücksichtigt wird. Sie enthalten auch Schriftarten, Flashplayer und so weiter. Wählen Sie einfach einen der bereits vorhandenen images und führen Sie Ihre Tests durch. Sie müssen Java nicht installieren, um Selenium-Tests auszuführen.