CapybaraとSeleniumでヘッドレスクロムを使用しています。以前のCapybara js specからのXHR要求が次の仕様で浮上(および失敗)
特定のjsテスト(xhrを使用)がxhrも使用する(コードの場合はhttps://github.com/thredded/thredded/tree/separate-out-js-from-non-js-in-ci、サンプル実行の場合はhttps://travis-ci.org/thredded/thredded/jobs/302376004を参照してください)、予測可能な(CIのみの)障害が発生しています。
「ユーザーがタイトルとコンテンツで新しいトピックを作成する」という次のスペックでは、サーバーのエラーが常に浮上していますが、URLは明らかに以前の仕様「トピックに返信するユーザーは引用返信(js)を開始します。
明白なことは、仕様の終わりから落ちて、DatabaseCleaner.clean
の後に起こる要求の間に競合状態が存在することです。しかし、私の理解は、この正確な問題を防ぐべきであるreset_session!
の後にCapybara 2.7+ [1] after_each
が起こるはずです。いずれにしても、このリクエストを作成する可能性のあるページには何もありません(具体的にはwait/test for the completion of this ajax requestです)。
これは、3つの異なるデータベースと3つの異なるレールバージョン(4.2、5.0、5.1)で発生しています。 最新のカピバラにアップグレードしました。
ターボリンクを無効にして、問題のある仕様の最後に大量の(10秒)睡眠を加えてみました...手動でセッションをリセットしようとしました。
何かが欠落している必要があります。すべてのポインタ?
[1] https://bibwild.wordpress.com/2016/02/18/struggling-towards-reliable-capybara-javascript-testing/
UPDATEから参照https://github.com/teamcapybara/capybara/pull/1637:として、XHRへの参照を追加した別のJSスペック問題を有し、それは最初の2つのリクエスト(ログインフォームとされないことである(新しい)はPOSTにログインする)、エラーを処理している最初のxhr要求が表示されます。新しいケースでは、要求されているxhrがGETで元の要求であったにもかかわらず、POSTで後続の仕様で要求されています