30歳パパエンジニアのアウトプット帳

30歳に突入した1児のパパエンジニアのブログ

Capybara::Poltergeist::StatusFailErrorが出たら

このエラーはローカルで

Capybara::Poltergeist::Driver.new(app, js_errors: true, timeout: 1)

のようにpoltergeistのtimeoutをすごく短くすると同様のエラーになる。


原因はassets compileに時間がかかっていてタイムアウトしている説らしい。

とりあえず、timeoutを伸ばして様子をみて、ダメなら先にassetファイルにアクセスするやテスト前にprecompileをするなどの方針を考える必要がある。

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, js_errors: true, timeout: 60)
end

Capybara::Poltergeist::StatusFailError · Issue #791 · teampoltergeist/poltergeist · GitHub

Capybara::Poltergeist::TimeoutErrorが稀に起こる問題の対応 - Qiita

Timeout::Error: execution expiredの場合

このエラーの場合はどのgemがというよりはテスト内にTimeout.timeout(5)とかやっている場合がある。

自分の場合はajaxの処理が完了するまで待つみたいなやつがあった。