2

一部のカピバラ webkit-driver ( :js => true) テストで少し奇妙な点があります。

テストは、単独で実行すると正常に実行されますが、どういうわけか順番に失敗します。

たとえば、次のようなリクエスト テストがあります。

describe "A", :js => true do
  # tests here run fine
end

describe "B", :js => true do
  # tests here fail
end

describe Bセクションを独自のファイルに分割し、それを使用して実行すると、bundle exec rspec spec/requests/b_spec.rbテストは正常に実行され、合格します。

これをデバッグすると、両方のセクションが同じファイルにある場合、何らかの形で Webkit ドライバーが「ダーティ」ブラウザー セッションをロードするように見えます。page.driver.reset!orのようなことを試してCapybara.reset_sessions!Capybara.reset!効果がないようです...

spectator/spork を使用する場合、テストを異なるファイルに分割して個別に実行できるため、これは問題ではありませんが、完全なテスト スイートを使用して実行すると、bundle exec rspecこれらのテストは失敗します...

テスト間で Webkit ドライバー/セッションを適切にリセットするにはどうすればよいですか? それとも私は間違った問題を追いかけていますか?

ps これらのテストは、データベースにアクセスしたり、特定の方法で状態を変更したりしていないため、ドライバー関連の問題であると確信しています。

4

1 に答える 1

1

解決策がポップアップする質問を書くだけで役立つ場合があります。

私にとっての鍵は:

これらのテストは、データベースにヒットしたり、特定の方法で状態を変更したりしていないため、ドライバー関連の問題であると確信しています。

状態変化があったことがわかりました。私の特定のケースでは、に設定OmniAuthすると、前のテストが実行された後にtest_mode設定を戻す必要がありました...false

于 2012-07-24T16:47:08.143 に答える