キュウリ+ webratからキュウリ+カピバラへの移行を開始しました。さて、「見るべき」の振る舞いは少し違うようです。ページの何も変更していませんが、これらのほとんどは今は失敗します。見つかるはずのスニペットをすべてのページにあるものに置き換えました。一部のテキストでは機能し、他のテキストでは機能しません。ページのコンテンツにあるパターンとそうでないパターンにパターンが見つかりません。 Webratは、必要なフレーズが含まれていない場合に備えて、ページコンテンツの内容を印刷していました。とにかくカピバラにテキストを見つけようとしたページから取得したテキストを表示させる方法はありますか?
このステップを追加してみてください:
Then show me the page
Then show me the page
は、webrat/capybaraの基礎となるsave_and_open_page
メソッドを呼び出します。ステーキを扱うときにそれが役立つことがわかりました。
ページが失敗したときにブラウザにページを開かせたい場合は、「launchy」gemを使用します。それをgemファイルに追加し、/ features/supportにdebugging.rbという名前のファイルを作成し、次の内容を含めます。
After do |scenario|
save_and_open_page if scenario.failed?
end
ページでJavascriptまたはAjaxを使用していて、何が起こっているのかを確認したい場合、私はPoltergeistドライバーがDOMにアクセスして何が問題になっているのかを調べるのに非常に優れていることを発見しました。
Capybaraドライバーをリモートデバッグオプションでセットアップした場合:
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, inspector: true)
end
その後、ステップに次の行を追加できます。
page.driver.debug
これにより、現在のDOM状態が設定された新しいChromiumブラウザーが起動し、コンソールが表示されます。 (私のバージョンのLinuxでは、クロムをクロムブラウザーにシンボリックリンクする必要がありましたが、それ以外は問題なく動作しました)。
ソース情報: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/
Then show me the response
はcucumber 1.1。では機能しませんでした。capybaraのコマンドを使用してステップを記述すると便利です。
print page.html
DOMの現在の状態を出力します
ブラウザを使用しない場合は、「Then show me the response」を使用して、HTMLをコンソールに出力することもできます。
何かが失敗したときに、常にスクリーンショットを撮ることができます。失敗する機能の多くをその方法でデバッグします。