2011-09-01 2 views
2

cron을 통해 rspec 테스트를 실행하는 데 문제가 있습니다. 파이어 폭스에 액세스하고 페이지에 로그인하는 테스트를 위해 셀레늄을 사용하고 있습니다. 모든 파일은 cron 외부에서 실행될 때 제대로 작동합니다. 내가 읽은 것부터, 문제는 cron이 파이어 폭스와 같은 프로그램을 실행하는 디스플레이 환경을 필요로 할 수 있다는 것입니다. 이것은 내가 갇혀있는 곳입니다. cron 내에서 firefox를 시작하기 위해 셀레늄 디스플레이 환경을 설정하려면 어떻게해야합니까?cron을 통해 셀레늄을 사용하여 rspec 테스트를 실행하는 방법

나는 화면은 crontab에서 몇 가지 설정을 시도했습니다 ..

*/25 * * * * /home/justin/test.sh --display=:0 > testlog 

*/25 * * * * DISPLAY=:0; /home/justin/test.sh > testlog; 

나는 또한 스크립트에서 설정을 시도했습니다 ..

#!/bin/sh 

cd /home/justin/widget_ui_testing/ 

DISPLAY=:0 

/home/justin/.rvm/bin/rvm exec /home/justin/.rvm/gems/ruby-1.9.2-p290/bin/rspec 
-fdoc /home/justin/widget_ui_testing/spec/requests/log_in_spec.rb 

내가 계속 오류 메시지 점점 더

Selenium::WebDriver::Error::WebDriverError: 
unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) 
# ./spec/requests/log_in_spec.rb:22:in `block (2 levels) in <top (required)>' 

내가 파이어 폭스를 실행할 수있는 셀렌 코드를 변경하는 방법이 있는지 궁금하네요. fied 디스플레이. 또는 내가 길을 따라 뭔가를 놓친 경우. 어떤 도움이라도 대단히 감사 할 것입니다.

답변

3

먼저 Xvfb를 시작해야합니다. headless gem을 사용하여 Xvfb와의 상호 작용을 단순화하는 것이 좋습니다. 유사한 유스 케이스가있는 readme를 살펴보십시오.

또한에 젠킨스 및 헤드리스 설정에 대해 살펴보십시오.

P.S : 제안 사항 - CI 도구를 사용하여 이러한 목적으로 cron을 사용하지 마십시오. 나는 Jenkins CI을 사용하여 SCM을 폴링하고 주기적으로 (정확한 사용 사례) 빌드를 수행 할 것을 권장한다.

관련 문제