1

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で後続の仕様で要求されています

答えて

0

クロムドライババグのようです。

chromeriver(travis)をv2.33(linux)にアップグレードすることでこれを修正しました。 https://travis-ci.org/thredded/thredded/builds/302431113

以前のバージョンはv2.31でした。奇妙なことに、これをローカルで2.31(mac)で中断することはできませんでした。

関連する問題