2017-10-03 5 views
0

Le problème auquel je suis confronté est que lorsque je commence à construire avec des tests d'interface utilisateur, il ne peut pas trouver l'affichage xvfb pour démarrer le navigateur.L'agent TeamCity avec les tests d'interface utilisateur ne peut pas voir l'affichage xvfb

Server est en cours d'exécution avec Ubuntu 16.

  1. en chrome mode sans tête fonctionne bien.
  2. Lorsque je lance des tests manuellement comme "mvn clean test" - le chrome fonctionne bien. Le serveur xvfb se rince, je peux le voir dans la liste des processus. Je fais: exporter DISPLAY =: 99 et tout fonctionne bien.
  3. Quand je commence les tests dans TC je reçois ceci:

[MainPageTest] java.lang.IllegalArgumentException: org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=2.32.498513 (2c63aa53b2c658de596ed550eb5267ec5967b351),platform=Linux 4.4.0-92-generic x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 60.06 seconds Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' System info: host: 'tc.atbdev.ru', ip: '172.31.1.100', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-92-generic', java.version: '1.8.0_144' Driver info: driver.version: ChromeDriver

Quelqu'un peut-il me dire ce que je fait de mal? Peut-être que je devrais pointer un certain nombre de DISPLAY quelque part dans la configuration de construction? J'ai aussi l'affichage Xvnc avec le bureau de gnome - puis-je l'utiliser pour les tests? UPD: Pourtant, j'ai oublié de mentionner que TC et son agent par défaut sont sur le même serveur. TC commence par le script:

> USER="username" export TEAMCITY_DATA_PATH="/var/www/.../.BuildServer" 
> case $1 in start) start-stop-daemon --start -c $USER --exec 
> /var/www/.../public_html/bin/runAll.sh start ;; stop) 
> start-stop-daemon --start -c $USER --exec 
> /var/www/.../public_html/bin/runAll.sh stop ;; esac exit 0 

Répondre

0

Peut-être qu'une approche basée sur les dockers est préférable dans votre cas. Par exemple, vous pouvez jeter un oeil à notre "docker-headless-vnc-container" https://github.com/ConSol/docker-headless-vnc-container, où tous les problèmes sont déjà résolus. De plus, vous avez l'avantage que l'interface utilisateur du trou est encapsulée dans un environnement conteneur séparé. Là, vous pouvez exécuter un vrai Desktop-UI et le navigateur. Pendant l'exécution du conteneur, vous pouvez regarder dans le conteneur via VNC.

Si vous ne voulez pas utiliser maven à l'intérieur du conteneur, jetez un oeil à https://github.com/ConSol/sakuli/blob/master/docker/Dockerfile.sakuli.ubuntu.xfce.java#L42