11

rspec、capybara、capybara-webkit、timecopを使用している一部の統合仕様でエラーが発生しています。

Capybara::FrozenInTime:
   time appears to be frozen, Capybara does not work with libraries which freeze time, consider using time travelling instead

時間がフリーズすることを私が知っている唯一の宝石はTimecopですが、失敗したテストケースでは使用していません。

エラーが発生するのはたまにあるので、何かを変更した後、エラーが発生したかどうかさえわかりません。

4

2 に答える 2

11

エラーメッセージの最後に解決策があります。

代わりにタイムトラベルを使用することを検討してください

に変更Timecop.freezeするだけTimecop.travelです。 Timecop.freeze カピバラの自動待機機能を解除します。

さらに、Timecop.return最新の旅行ブロックに関連付けられるため、afterブロックを呼び出します。

after :each do
  Timecop.return
end
于 2013-07-02T18:17:44.490 に答える
6

私が見つけた解決策は、追加することでした

before :each do
  Timecop.return
end

spec_helper.rbにあります。

このようにして、各テストの前に時間が凍結されないことを保証しますが、この問題が発生するのは、とは異なるWebドライバーで実行されたものだけですrack-test。私の場合capybara-webkit

于 2012-08-22T20:04:29.283 に答える