2014-05-21 5 views
1

셀레늄 사양에 오류가 발생했습니다. 레일스 env load에서 rufus-scheduler 작업을 실행합니다. 내 통합 테스트 (RSpec에, 카피 바라, 셀레늄 드라이버)를 실행하면루퍼스 스케줄러 타임 아웃 :: 내 프로젝트에 역동적으로 레일 <a href="https://github.com/gottfrois/dashing-rails" rel="nofollow">https://github.com/gottfrois/dashing-rails</a>을 사용하고

, 내 일부 테스트는 무작위로 인한 루퍼스 - 스케줄러 시간 초과 오류로 실패합니다. 테스트 환경에서 rufus-scheduler 오류를 해결하거나 rufus를 사용하지 않도록 설정할 수 있습니까? 나는 rails_env = 내 코드베이스에 대한 테스트를하는 팬이 아니므로 다른 솔루션도 감사 할 것입니다.

샘플 오류는 다음과 같이 :

{ 283064 rufus-scheduler intercepted an error: 
    283064 job: 
    283064  Rufus::Scheduler::EveryJob "10s" {} 
    283064 error: 
    283064  283064 
    283064  Timeout::Error 
    283064  Waited 3 sec 
+0

저는 rufus-scheduler의 저자입니다. 귀하의 통합 테스트를 무마하기 위해 아무것도 쓰지 않았 음을 증명할 수 있습니다. 문제에 대해 좀 더 똑똑한 제목을 선택하십시오. – jmettraux

답변

0

루퍼스 - 스케줄러 #on_error 도움이됐다. 예를 들어 https://github.com/jmettraux/rufus-scheduler#rufusscheduleron_errorjob-error

에서 문서화 : 스케줄러를 오버라이드 (override) 할시기를 결정하는 방법을 찾아야한다, 그래서

if rails_env == 'test' # set the handler only when testing... 
    def Dashing.scheduler.on_error(job, error) 
    # keep silent, do nothing 
    end 
end 

당신은 당신의 통합 테스트를위한 레일 ENV에 "테스트"를 설정할하지 않는 것 #on_error 메소드, 문제가 있습니다.

또한 rufus-scheduler는 Timeout :: Error의 인스턴스를 발생시키지 않고 Rufus :: Scheduler :: TimeoutError의 인스턴스를 발생 시키므로보고있는 오류가 rufus-scheduler 오류가 아니며 단순히 rufus에 의해 차단됩니다 - 스케줄러.

위에서 언급했듯이, rufus-scheduler의 작성자로서 "Rufus scheduler breaking integration tests"와 같은 제목을 읽기 위해 rufus-scheduler를 작성하지 않았지만 코드 어셈블러가 통합 테스트를 중단합니다. 책임을 져야합니다.

+0

감사합니다. 그것은 내가 다음에 점검하기로되어있는 곳으로 나를 인도한다. 나는 그것을 게시하는 동안 제목을 생각하지 않기 때문에 사과드립니다. 그것이 그랬던 것처럼 들리려고하지 않았습니다. 내 미래의 질문에 더주의를 기울일 것이다. –

+0

제목을 변경하거나 내 대답을 수락하십시오. 미리 감사드립니다. – jmettraux