2011-08-19 5 views
3

헤드리스 보석, xvfb 및 capybara를 사용하여 우분투 서버 CI 상자에서 실행되는 통합 사양 집합을 얻으려고합니다. 헤드리스 테스팅을위한 웹킷. 모든 것은 로컬 devbox에서 아름답게 작동하지만, 일단 CI 서버로 옮겨지면 흥미로워집니다. 사양 도우미에서 Capybara-webkit, rspec 통합 사양 및 xvfb : webkit_server : 치명적인 입출력 오류 : 클라이언트가 사망했습니다

코드 포장의 비트가

: 그래서 같이 머리가없는 블록 내에서 통합 사양을 활성화 JS :

config.around(:each, :js => true) do |example| 
    Headless.ly &example 
    end 

내가 말했듯이,이 모든 로컬 dev에 상자에 잘 작동합니다.

webkit_server: Fatal IO error: client killed

: 사양은 브라우저 인스턴스를 인스턴스화해야 할 때 다음과 같은 오류에 통합 사양 결과를 실행하려고, 다른 프로젝트에 대한 테스트에 대해 동일한 사용자로 헤드리스 보석 및 Xvfb가를 사용하는 CI에

나는 그 오류를 일으킬 수있는 것이 무엇인지 알아 내기 위해 애를 썼지 만 어디에서 왔는지 추적 할 수 없으며 문제를 디버그하는 데 도움이되는 다른 정보도 찾을 수 없습니다. CI를 사용자가 하나가되지 대한 경고 제공과 같이

  • CI 사용자 확실히 "99 -ac을 Xvfb가"를 실행
  • 를 Xvfb가 실행할 수있는 권한이 있습니다

    지금까지 내가 확인한는/다음 시도 발견 된 글꼴, 다른 이슈 없음

아무에게도 어떤 문제가 발생했는지, 내가 더 많은 정보를 찾을 수있는 곳이 있습니까? 나는 이것에 꽤 난처하게 굴었다.

감사합니다.

답변

8

이것이 전적으로 적합한 솔루션인지 확실하지 않지만 저에게는 효과적입니다.

bundle exec spec 

은과 같이 Xvfb가 함께 명령을 실행하고 헤드리스 보석의 사용을 제거 :

xvfb-run bundle exec spec 

조금 잘못된 것 같다,하지만 작동 대신 일을.

1

하지 않음이이 관련되어 있는지 (I 대신 머리없는 보석의 카피 바라 - 웹킷을 사용했다)하지만 내 우분투 인스턴스 (우분투가 EC2에 대한 명쾌한) 또한 실행하는 데 필요한 :

sudo xhost +local:jenkins 

는 젠킨스에게주고 xvfb와 대화 할 계정 권한. 참조 : Cannot connect to X server :0.0 with a Qt application

2

나를 위해 다음 일했습니다. "-a"가 누락되어 xvfb를 실행하지 못하는 이유가 확실하지 않습니다. 내 빌드가 우분투 + 젠킨스 CI에서 @javascript 테스트를 실행 중입니다.

DISPLAY=localhost:0.0 xvfb-run -a bundle exec cucumber