2011-12-06 2 views
4

빌드 서버에서 실행되는 오이 테스트 세트가 있습니다."주위"오이에서 던져진 예외가 보이지 않는 이유는 무엇입니까?

저는 종종 서버가 직접 제공하는 것보다 더 빠른 피드백을 원하기 때문에 실행되는 콘솔 출력을 봅니다. 단일 검색 용어로 실패한 테스트를 식별 할 수있는 방법을 원했기 때문에 Around를 수정하여 예외가 발생해도 "실패한 테스트"를 인쇄했지만 Ruby는 예외를 다시 주위로 넘겨주는 것처럼 보이지 않습니다. 나는 begin ... end 다음에 문장을 넣음으로써 이것을 검증했다.

왜 이런 일이 발생했는지 또는 시작시 실패한 테스트에서 던져진 예외를 래핑하는 방법을 아는 사람이 있습니까?

Around() do |scenario, block| 
    begin 
    Timeout.timeout(0.1) do 
     block.call 
    end 
    rescue Timeout::Error => e 
    puts "Failed Test" 
    puts caller 
    rescue Exception => e 
    puts "Failed Test" 
    raise e 
    end 
end 

답변

0

@ allow-rescue 태그로 Cucumber의 예외 캡처를 사용 중지 해 보셨습니까?

@ allow-rescue : 태그가 추가 된 시나리오에 대한 Cucumber의 예외 캡처를 끕니다. 테스트중인 코드에서 예외를 발생시키고 처리 할 것으로 예상되는 경우에 사용됩니다.

https://github.com/cucumber/cucumber/wiki/Tags

0

오이 1.3.12을 보면 실제로 시나리오 단계에서 예외를 구출. 그래서 당신은 오이 보석을 수정하지 않고는 어떤 방법으로 그들을 볼 수 없습니다. https://stackoverflow.com/a/22654786/520567

:

자세한 내용은 그 장소에 디버그 후크를 넣어하는 방법에 대한 내 대답을 참조하십시오

관련 문제