program tip

테스트 실패와 관련된 전체 추적을 제공하기 위해 rspec-2를 얻는 방법은 무엇입니까?

radiobox 2020. 8. 26. 07:44
반응형

테스트 실패와 관련된 전체 추적을 제공하기 위해 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

로그의 끝 부분으로 돌아 가면 오류를 볼 수 있습니다. (실패한 테스트를 단독으로 실행했기 때문에) 주변에 너무 많은 다른 항목이 없기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/7649037/how-to-get-rspec-2-to-give-the-full-trace-related-with-a-test-failure

반응형