우선, 외부 API 호출을 조롱하는 것이 대부분의 경우에 올바른 일임에 동의합니다. 그러나이 경우에는 아닙니다.Timeout :: Error가 발생하면 자동으로 rspec 예제를 다시 실행하십시오.
일부 테스트에서 예외적 인 Timeout::Error
이 발생하고이를 무시하고 자동으로 예제를 다시 실행하고 싶습니다. 실패는 10 번의 실패한 시도 후에 만보고되어야합니다.
기타 예외 & 오류가보고되어야합니다.
내가 spec/spec_helper.rb
파일에 글로벌 around(:each)
후크를 사용하여이 동작을 구현하기 위해 노력했습니다 :
RSpec.configure do |config|
config.around(:each) do |example|
attempts = 0
passed = false
begin
attempts +=1
example.run
passed = true
rescue Timeout::Error => e
raise e if attempts >= 10
end until passed
end
end
그러나 예외가 발생했을 때 구조 부분이 실행되지 없구요. 왜 그런가?
감사합니다. 도리안
P. rspec 2.6.0을 사용하고 있습니다.