質問

CapybaraとSeleniumを使用してRailsで統合テストを実行する際に、例外が発生した場合、スタックトレースのある通常の例外画面の代わりに空白の白いページが表示されます。カピバラにスタックトレースページを表示する方法はありますか?

役に立ちましたか?

解決

WebrickまたはThinで表示するスタックトレースを取得することはできませんでしたが、私の最終的な回避策は、Stderrにスタックトレースを適切に印刷するMongrelを使用することでした。

Capybara 0.4.1.2以降では、Capybaraを構成することができます。

Capybara.server do |app, port|
  require 'rack/handler/mongrel'
  Rack::Handler::Mongrel.run(app, :Port => port)
end

他のヒント

マットの解決策は私にはうまくいきませんでしたが、まさにこの要点 https://gist.github.com/1443408やりました。

https://github.com/thoughtbot/capybara-webkit/issues/226 なぜそれが起こるのかをより詳細に説明し、与えられたGISTが何をするかについて説明を提供します。

これは、スタックトレースが 発達 実行モード(または「環境」)、および統合テストはで実行されます 製造 環境。

もちろん、生産モードの設定を微調整することで、例外を表示できるようになる場合があります。しかし、それは正しい方法ではありません。最良の方法は次のとおりです。

  • ファイルまたはログサーバー(HopToad?)で例外とスタックトレースをログに記録します。ユーザーが表示できませんが、
  • 例外をキャッチし、エラーページをレンダリングします

お役に立てれば。よろしくお願いします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top