2017-10-03 18 views
0

내가 직면 한 문제는 UI 테스트로 빌드를 시작할 때 브라우저를 시작하기 위해 xvfb 디스플레이를 찾을 수 없다는 것입니다.UI 테스트를 사용하는 TeamCity 에이전트가 xvfb 디스플레이를 볼 수 없음

서버는 물론 헤드리스 (headless) 모드 크롬에서 우분투 (16)

  1. 작동 실행 중입니다.
  2. "mvn clean test"와 같이 수동으로 테스트를 시작하면 크롬이 잘 작동합니다. xvfb 서버가 실행 중입니다. 프로세스 목록에서 볼 수 있습니다. 나는 다음과 같이한다 : export DISPLAY = : 99 그리고 모든 것이 잘 동작한다.

[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

사람이 내가 뭘 잘못했는지 말해 줄 수 :

  • 나는 TC에서 테스트 나는이 얻을 시작하면? 어쩌면 Build Configuration에서 DISPLAY를 어딘가로 가리켜 야할까요? 또한 그놈 데스크탑과 함께 Xvnc 디스플레이가 있습니다. 실제로 테스트 실행을 위해 사용할 수 있습니까?

    UPD : 그렇지만 TC와 기본 에이전트가 동일한 서버에 있다는 것을 잊어 버렸습니다. TC는 스크립트로 시작합니다.

    > 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 
    
  • 답변

    0

    아마도 귀하의 경우에 도커 기반 접근 방식이 더 좋을 수 있습니다. 예를 들어 모든 문제가 이미 해결 된 "docker-headless-vnc-container"https://github.com/ConSol/docker-headless-vnc-container을 살펴볼 수 있습니다. 또한 구멍 UI가 별도의 컨테이너 환경에 캡슐화되어 있다는 이점이 있습니다. 여기에서 실제 데스크탑 UI 및 브라우저를 실행할 수 있습니다. 컨테이너 런타임 중에는 VNC를 통해 컨테이너를 조사 할 수 있습니다.

    컨테이너 내부에서 maven을 사용하지 않으려면 https://github.com/ConSol/sakuli/blob/master/docker/Dockerfile.sakuli.ubuntu.xfce.java#L42