지금 테스트 도구 모음을 실행 rake spec
하면 오류가 발생합니다.
1) SegmentsController GET 'index'가 작동해야합니다. 실패 / 오류 : '색인'가져 오기 #에 대한 정의되지 않은 메소드`locale ' # ./spec/controllers/segments_controller_spec.rb:14 : '블록 (3 단계)'
오류가 있기 때문에 이것은 정상입니다. 🙂
문제는 추적이별로 도움이되지 않는다는 것입니다. 나는 그것이 segments_controller_spec.rb
, 14 행에 침입했다는 것을 알고 있지만 이것이 내가 테스트를 부르는 곳입니다.
### segments_controller_spec.rb:14
get 'index'
사양 폴더의 일부가 아닌 실제 줄 바꿈과 전체 추적을 선호합니다.
함께 달리는 --trace
것은 도움이되지 않습니다.
답변
-b
전체 역 추적을 보려면 옵션 과 함께 rspec을 실행해야합니다.
답변
또 다른 (쉬운) 대안은 .rspec
파일 을 편집 하고 backtrace
옵션을 추가하는 것입니다. 다음과 같이 보일 것입니다.
--colour
--backtrace
그것은 당신에게 완전한 역 추적을 줄 것입니다. 도움이 되었기를 바랍니다.
답변
이것은 또한 작동합니다.
# rails_helper.rb
RSpec.configure do |config|
config.full_backtrace = true
end
답변
또 다른 접근 방식은 spec_helper.rb
. 나는이 솔루션과 같은 대부분의 I는 한 곳에서 모든 RSpec에 설정을 유지하고 제거하는 수 있어요으로 .rspec file
또는 명시 적 --backtrace
에서 .travis.yml
.
# spec_helper.rb
RSpec.configure do |config|
config.backtrace_exclusion_patterns = []
end
답변
rspec에 컨트롤러 오류를 표시하는 방법을 모르겠습니다. 때로는 나타나지만 어떤 조건으로 인해 나타나는지 모르겠습니다. 다음은 오류를 상당히 빠르게 확인하는 방법입니다.
다른 터미널 세션을 열고 다음을 실행하십시오.
tail -f log/test.log
그런 다음 터미널 세션으로 돌아가 오류가있는 사양 만 실행합니다.
bin/rspec -b spec/requests/posts/index_spec.rb
로그의 끝 부분으로 돌아 가면 오류를 볼 수 있습니다. (실패한 테스트를 단독으로 실행했기 때문에) 주변에 너무 많은 다른 항목이 없기를 바랍니다.
답변
다른 모든 것이 실패 할 때 한 가지 더 옵션은 구조 블록을 추가하고 스택 try를 인쇄하거나 거기에 바인딩 pry 문을 추가하고 사용하는 것 show-stack
입니다.
rescue Exception => e
puts ""
puts e.backtrace
puts ""