테스트 실패와 관련된 전체 추적을 제공하기 위해 rspec-2를 얻는 방법은 무엇입니까?
지금 테스트 도구 모음을 실행 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
또 다른 방법은 .NET의 모든 역 추적 제외 패턴을 지우는 것입니다 spec_helper.rb
. 나는이 솔루션과 같은 대부분의 I는 한 곳에서 모든 RSpec에 설정을 유지하고 제거하는 수 있어요으로 .rspec file
또는 명시 적 --backtrace
에서 .travis.yml
.
# spec_helper.rb
RSpec.configure do |config|
config.backtrace_exclusion_patterns = []
end
다른 모든 것이 실패 할 때 한 가지 더 옵션은 구조 블록을 추가하고 스택 try를 인쇄하거나 거기에 바인딩 pry 문을 추가하고 사용하는 것 show-stack
입니다.
rescue Exception => e
puts ""
puts e.backtrace
puts ""
rspec에 컨트롤러 오류를 표시하는 방법을 모르겠습니다. 때로는 나타나지만 어떤 조건으로 인해 나타나는지 모르겠습니다. 다음은 오류를 상당히 빠르게 확인하는 방법입니다.
다른 터미널 세션을 열고 다음을 실행하십시오.
tail -f log/test.log
그런 다음 터미널 세션으로 돌아가 오류가있는 사양 만 실행합니다.
bin/rspec -b spec/requests/posts/index_spec.rb
로그의 끝 부분으로 돌아 가면 오류를 볼 수 있습니다. (실패한 테스트를 단독으로 실행했기 때문에) 주변에 너무 많은 다른 항목이 없기를 바랍니다.
'program tip' 카테고리의 다른 글
v5 UUID 생성. (0) | 2020.08.26 |
---|---|
프로젝트에서 Cordova 플러그인 제거 (0) | 2020.08.26 |
'nuget'은 인식되지 않지만 다른 nuget 명령은 작동합니다. (0) | 2020.08.26 |
JavaScript 코드를 어떻게 벤치 마크 할 수 있습니까? (0) | 2020.08.26 |
액세스로부터 자바 소스 코드 보호 (0) | 2020.08.26 |