1. PG::ConnectionBad: PQsocket() can't get socket descriptor
-
find(xxx).click
の後に画面遷移する前にテストコードが実行されてしまっている時に表示されたエラー - clickの後にsleepを挟めば直る
- have_xxxとか使えば自動で待ってくれるんだろうけどうまく動かず、sleepでやり過ごしている
- 追記 (2017/04/06) findやwithinは指定要素が表示されるまでデフォルトで2秒まで待ってくれるのでsleepを多用しない
scenario "move to hogehoge page", js: true do
visit hogehoge_path
find(".move-button").click
expect(current_path).to eq fuga_path
end
2. ActiveRecord::StatementInvalid: PG::UnableToSend
- 1と同様の理由で発生していたが、タイミングによってはこのエラーが出たりするので嵌った
3. double free or corruption
- こちらも1と同様の理由で発生していたが、タイミングによってはこのエラーが出たりするので嵌った
4. Capybara::ElementNotFound: Unable to find css
こちらは以下の3つのいずれかに該当する時に表示される。特に非表示になっているのが原因の場合は特定に時間がかかり嵌った。
- 対象の要素がない
- 対象の要素が複数存在する
- 要素が表示されていない(visible: false)
5. ActiveRecord::StatementInvalid:PG::UnableToSend: extraneous data in "T" message
- 原因不明。稀に発生するが、基本はリトライすれば直る。
以下の記事が参考になりました。
Capybaraでハマらないために気をつけるべき4つのこと - Qiita http://qiita.com/shida/items/5ec16a1e0f07204b2a88
まだあったと思うので、今後追記します。