3

Rspec 2.12.0 を使用する Capybara 2.1.0 の場合:

を実行する$ rspec spec/features/user_sees_leaderboard_spec.rbと、仕様はパスします。

を実行する$ rspec spec/features/*と、テストは失敗し、次のように主張します。

Capybara::ElementNotFound:
   Unable to find css "#flash"

save_and_open_pageすると、#flash が存在し、表示されます。

失敗が発生しているヘルパーは次のとおりです。

def sign_in_as(user)
  visit new_user_session_path
  fill_in "Email", with: user.email
  fill_in "Password", with: user.password
  click_button "Sign In"
  flash = find("#flash")

  flash.should have_content "You are now signed in."
end

何か案は?私はカピバラに慣れていないので、どこから始めればよいかわかりません。ありがとう!

編集/更新:

一緒に実行save_and_open_pageすると失敗する一連の仕様で実行することで、一連の成功に続いて、body タグに「Not Found」以外の何も表示されない一連のページが表示されることがわかりました。Google は何も表示しませんでした。

更新 #2

BODY の "Not Found" コンテンツは、capybara-webkit を使用して JavaScript を実行する仕様の直後に始まっていることに気付きました。after(:all) ブロックで明示的に Capybara.current_driver = :rack_test をリセットしても問題は解決しませんが、これは関連していると思います。

4

1 に答える 1

1

何が原因なのかはまだ 100%Capybara.automatic_reload = falseわかりませんが、capybara-webkit を使用してテストから削除すると、問題は解決しました。

于 2013-05-22T22:24:55.527 に答える