Agora, se eu executar meu conjunto de testes usando rake spec
Eu recebo um erro:
1) SegmentsController GET "index" deve funcionar Falha / Erro: get "index" método indefinido `locale" para # # ./spec/controllers/segments_controller_spec.rb:14: no bloco `(3 níveis) em"
Isso é normal, pois tenho um erro :)
O problema é que o rastreamento não é muito útil. Eu sei que ele entrou em colapso segments_controller_spec.rb
, linha 14, mas é aqui que chamo o teste:
### segments_controller_spec.rb:14
get "index"
Eu preferiria ter a quebra de linha real e o rastreamento completo, não a parte da pasta spec.
Correndo com --trace
não ajuda.
Respostas:
237 para resposta № 1Você deve executar o rspec com -b
opção para ver backtraces completos
29 para resposta № 2
Outra alternativa (mais fácil) é editar o .rspec
arquivo e adicione o backtrace
opção. Deve ser parecido com isto:
--colour
--backtrace
Isso lhe dará o backtrace completo. Espero que isto ajude.
3 para resposta № 3
Isso também funcionará:
# rails_helper.rb
RSpec.configure do |config|
config.full_backtrace = true
end
2 para resposta № 4
Outra abordagem é limpar todos os padrões de exclusão de backtrace em spec_helper.rb
. Gosto mais desta solução, pois sou capaz de manter todas as configurações RSpec em um só lugar e me livrar de .rspec file
ou explícito --backtrace
dentro .travis.yml
.
# spec_helper.rb
RSpec.configure do |config|
config.backtrace_exclusion_patterns = []
end
0 para a resposta № 5
Mais uma opção quando todo o resto falhar é apenas adicionar um bloco de resgate e imprimir a pilha, tentar ou adicionar uma instrução de pry de ligação lá e usar show-stack
.
rescue Exception => e
puts ""
puts e.backtrace
puts ""
0 para a resposta № 6
Não sei como fazer com que o erro do controlador apareça no rspec. Às vezes, ele aparece, mas não sei em que condições ele aparece. Esta é uma maneira de ver o erro rapidamente:
Abra outra sessão de terminal e execute:
tail -f log/test.log
Em seguida, volte para a sessão do terminal e execute apenas a especificação que apresentou o erro:
bin/rspec -b spec/requests/posts/index_spec.rb
Volte para o final do log e você verá o erro, com sorte, sem muitas outras coisas em torno dele (porque você executou o teste com falha sozinho).