Rails アプリケーションの開発において、自分の変更に関係のないテストのせいで CI がコケるとストレスですよね?真っ先に直したくなりますよね?不安定なテストを直すのは大変な労力が要ると思ってませんか?実は、たいていのケースは簡単に再現確認ができるし、不安定になる要因もだいたい決まっているし、ログやスクリーンショットを見れば原因も簡単に特定できるんです! そんなわけで、日頃不安定なテストを潰している身として知見みたいなものをまとめてみました。 今回利用した環境は次のとおりです。 rails 6.0.0 capybara 3.29.0 selenium-webdriver 3.142.4 rspec-rails 3.8.2 Google Chrome 77.0.3865.75 (headless で使用) ChromeDriver 77.0.3865.40 (f484704e052e0b5
Capybara を使って PhantomJS や Selenium などブラウザを介した E2E テストをするときに遭遇する、たまに落ちるテストのパターンをまとめていく。 ケース1: 押し損ね 落ちたときの状況 ボタンやリンクのクリックに失敗してそうに見える。 原因 click_on などはクリックするときに対象の要素を見つけ、 x 座標と y 座標を取得した上でその座標をクリックする。 対象の要素を見つけたときとクリックする瞬間の座標が異なるため、クリックはしているが目標の要素をクリックはできていない。 ずれる理由の多くは画像などの読み込みに伴う座標のずれ。 アニメーションもずれ得るが自分で把握して適宜待つようにしているパターンが多いのでだいたいの場合問題にはなっていない。 対策 読み込みタイミングによらず座標が固定されるような CSS を書くのが理想的。 回線によってはユーザもボタン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く