まず第一に、外部APIコールを嘲笑することがほとんどの場合に妥当であることに同意します。しかし、この場合ではありません。タイムアウト::エラーが発生した場合、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.S.私はrspec 2.6.0を使用しています