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).