2011-12-06 10 views
4

ビルドサーバーで実行される一連のキュウリテストがあります。キュウリ "Around"でスローされた例外が表示されないのはなぜですか?

私はしばしば、サーバーが直接提供するよりも速いフィードバックをしたいので、コンソール出力が実行されているのを見ます。私は単一の検索用語で失敗したテストを特定する方法を欲しかったので、Aroundを変更して "Failed Test"を印刷するようにしましたが、Rubyはその例外を周囲にバックアップしていないようです。私はbegin ... endの後にputs文を置くことでこれを確認しました。

これはなぜ起こっているのか、または開始時に失敗したテストからスローされた例外をラップする方法を知っていますか?

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の例外キャプチャを無効にします。テスト対象のコードが例外を発生させ、処理することが予想される場合に使用されます。キュウリ1.3.12を見てみると

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

0

それは実際にシナリオ段階から任意の例外を救います。だから、キュウリの宝石を変更することなく、それらを見ることはできません。

詳細については、その場所にデバッグフックを置く方法についての私の答えを参照してください: https://stackoverflow.com/a/22654786/520567

関連する問題