2011-01-07 76 views
6

在使用capybara和selenium在導軌中運行集成測試時,如果引發異常,將顯示一個空白頁面,而不是帶有堆棧跟蹤的常規異常屏幕。有沒有辦法讓水豚能夠顯示堆棧跟蹤頁面?獲取導軌例外以顯示使用水豚和硒

回答

5

我無法獲得使用Webrick或Thin顯示的堆棧跟蹤,但我最終的解決方法是使用Mongrel,它將堆棧跟蹤正確輸出到stderr。

隨着水豚0.4.1.2或更高版本,可以配置豚用雜種像這樣:

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

謝謝馬特!訣竅 – calstad 2011-03-28 20:27:09

+1

您可以在spec_helper.rb或env.rb中使用Monkey-patch Thin:https://gist.github.com/999621 – 2011-05-30 23:15:21

-2

這很可能是因爲堆棧跟蹤在發展執行模式(或「環境」)僅表示,您的集成測試是在生產環境中運行。

當然,通過調整生產模式設置,您可能可以使其顯示異常。但這不是正確的方法。最好的辦法是:

  • 登錄 文件或日誌服務器異常和堆棧跟蹤 ,用戶可以不看,但你 可以
  • 捕獲異常和渲染(黽?)一個 錯誤頁面

希望這有助於。最好的祝福。

+2

我認爲通常人們都在測試環境中運行水豚測試。 – 2011-04-06 16:14:49