/ / Come ottenere rspec-2 per fornire la traccia completa associata a un fallimento del test? - ruby, ruby-on-rails-3, testing, rspec, rspec2

Come ottenere rspec-2 per fornire la traccia completa associata a un errore di test? - rubino, ruby-on-rails-3, testing, rspec, rspec2

In questo momento se eseguo la mia suite di test utilizzando rake spec Ottengo un errore:

1) SegmentsController GET "index" dovrebbe funzionare Errore / Errore: ottieni "indice" metodo "locale" non definito per # # ./spec/controllers/segments_controller_spec.rb:14: in `block (3 livelli) in"

Questo è normale poiché ho un errore :)

Il problema è che la traccia non è molto utile. So che è scoppiata segments_controller_spec.rb, linea 14, ma è qui che chiamo il test:

### segments_controller_spec.rb:14
get "index"

Preferirei avere l'attuale interruzione di riga e la traccia completa, non la parte nella cartella delle specifiche.

Correre con --trace non aiuta

risposte:

237 per risposta № 1

È necessario eseguire rspec con -b opzione per visualizzare backtrace completi


29 per risposta № 2

Un'altra alternativa (più semplice) è modificare il file .rspec file e aggiungere il file backtrace opzione. Dovrebbe apparire un po 'così:

--colour
--backtrace

Questo ti darà il backtrace completo. Spero che sia di aiuto.


3 per risposta № 3

Questo funzionerà anche:

# rails_helper.rb
RSpec.configure do |config|
config.full_backtrace = true
end

2 per risposta № 4

Un altro approccio è quello di cancellare tutti i modelli di esclusione backtrace in spec_helper.rb. Mi piace questa soluzione soprattutto perché sono in grado di mantenere tutte le impostazioni di RSpec in un unico posto e di sbarazzarmi di .rspec file o esplicito --backtrace in .travis.yml.

# spec_helper.rb
RSpec.configure do |config|
config.backtrace_exclusion_patterns = []
end

0 per risposta № 5

Un'altra opzione quando tutto il resto fallisce è semplicemente aggiungere un blocco di salvataggio e stampare lo stack provare o aggiungere un'istruzione di leva vincolante lì e utilizzare show-stack.

rescue Exception => e
puts ""
puts e.backtrace
puts ""

0 per risposta № 6

Non so come visualizzare l'errore del controller in rspec. A volte viene visualizzato ma non so quali condizioni lo causano. Ecco un modo per vedere l'errore abbastanza rapidamente però:

Apri un'altra sessione terminale ed esegui:

tail -f log/test.log

Quindi torna alla sessione del terminale ed esegui solo le specifiche con l'errore:

bin/rspec -b spec/requests/posts/index_spec.rb

Torna alla fine del registro e dovresti vedere l'errore, si spera senza troppe altre cose che lo circondano (perché hai eseguito il test fallito da solo).