Qt5にアップグレードした後、私の以前に合格した仕様のいくつかが失敗し始めました。いくつかの失敗は、信頼できない発信要求に関連しています。たとえば、仕様では、10回のリクエストが行われたかどうかをチェックしていましたが、仕様がn回のリクエストで失敗し、nが2〜3回、またはそれ以外が不確実でした。私はカピバラのデフォルトの待ち時間を変更しようとしましたが、運はありません。capybara-webkitのQt5にアップグレードした後のRSpecビューのスペックエラー
さらに簡単な障害があります。
it 'shows sorting with correct link', js: true do
expect(page).to have_content(/Sorted by/i)
expect(page).to have_selector(:link_or_button, text: /Most Recent/i)
page.find(:link_or_button, text: /A-Z/i).click
expect(current_url).to include 'sort=name'
end
そして、それは私に失敗しました:URLはリンクをクリックした後に変更した場合はチェックしています
Failure/Error: expect(current_url).to include 'sort=name'
expected "http://127.0.0.1:51355/shows" to include "sort=name"
を私はカピバラ、WebKitのデバッグ・モードをオンにし、それが実際にはなかったようにそれが見えました新しいURLへの応答を記述します。
(... previous logs ignored...)
Received "Node.leftClick"
Started "Node.leftClick"
Started request to "http://127.0.0.1:51355/shows?sort=name&status="
Finished "Node.leftClick" with response "Success()"
Wrote response true ""
Received "CurrentUrl()"
Started "CurrentUrl()"
Finished "CurrentUrl()" with response "Success(http://127.0.0.1:51355/shows)"
Wrote response true "http://127.0.0.1:51355/shows"
Received 200 from "http://127.0.0.1:51355/shows?sort=name&status="
Received "Reset()"
Started "Reset()"
Finished "Reset()" with response "Success()"
Wrote response true ""
Received "EnableLogging()"
Started "EnableLogging()"
Finished "EnableLogging()" with response "Success()"
Wrote response true ""
Received "SetUnknownUrlMode(block)"
Started "SetUnknownUrlMode(block)"
Finished "SetUnknownUrlMode(block)" with response "Success()"
Wrote response true ""
Received "SetTimeout(300)"
Started "SetTimeout(300)"
Finished "SetTimeout(300)" with response "Success()"
Wrote response true ""
shows sorting with correct link (FAILED - 1)
誰もが同様の失敗を経験したか、どのように私はこの問題をさらに調査することができた場合、私は疑問に思います。仕様はQt4で構築されたcapybara-webkitを使っていましたが、なぜQt5で失敗したのかはわかりません。私の設定の詳細:
capybara (2.7.0)
capybara-webkit (1.10.1)
rails (4.2.5.1)
rspec (3.3)
ありがとう!
はい!ありがとう! Capybara matcherを使用してこの仕様を解決しました。 「要求数」仕様に関しては、capybara-webkitが[キャッシュ要求](https://github.com/thoughtbot/capybara-webkit/issues/724)となっていると思います。 URLにランダムなクエリ文字列を追加すると、期待どおりに動作します。どのように私はこのthoに対処するか、またはブラウザのキャッシュを無効にするかわからない。私は確かに実際のコードを変更したくないのです。あなたにはどんな考えがありますか? – 322896
@ 322896申し訳ありません - ランダムなクエリ文字列以外の解決方法は、テストモードでのみ追加されていますが、実際に数多くのリクエストを本番環境で作成する必要がある場合は、とにかくキャッシュを破棄する必要があります。 –
よろしくお願いいたします。たぶん私は仕様をより現実的にするか、その周りに道を譲らなければなりません。 – 322896