6

Utilizzando capibara e selenio per eseguire test di integrazione in rotaie, se viene sollevata un'eccezione viene visualizzata una pagina bianca vuota invece della normale schermata delle eccezioni con la traccia dello stack. C'è un modo per ottenere capibara per mostrare le pagine di traccia dello stack?Ottieni le eccezioni dei rails da mostrare usando capibara e selenio

risposta

5

Non sono riuscito a ottenere le tracce dello stack da mostrare con Webrick o Thin, ma la mia soluzione alternativa era usare Mongrel, che stampa correttamente le tracce dello stack su stderr.

Con capibara 0.4.1.2 o versione successiva, è possibile configurare capibara di utilizzare bastardo in questo modo:

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

Grazie Matt! Questo ha fatto il trucco – calstad

+1

Puoi eseguire il patch delle scimmie Thin in spec_helper.rb o env.rb: https://gist.github.com/999621 –

+0

^^ Questa patch è stata ora unita all'ultima versione di Thin –

-2

questo è più probabile, perché la traccia dello stack è mostrato solo in sviluppo modalità di esecuzione (o 'ambiente'), ed i test di integrazione vengono eseguiti all'interno del produzione ambiente.

Ovviamente, modificando le impostazioni della modalità di produzione, è possibile che venga visualizzata l'eccezione. Ma non sarebbe il modo corretto. Il modo migliore è quello di:

  • registro l'eccezione e lo stack trace in un file o in un server di log in cui l'utente non può vedere, ma si possibile
  • cattura l'eccezione e render (hoptoad?) una pagina di errore

Spero che questo aiuti. I migliori saluti.

+2

Penso che di solito le persone abbiano i loro test Capybara in esecuzione in: ambiente di test. –

Problemi correlati