2010-02-26 4 views
14

그래서 Ruby on Rails를 기반으로하는 새로운 프로젝트로 옮겼습니다. 나는 그것에 익숙하지 않고 나는 아직도 그것을 배우고있다. 대부분의 응용 프로그램 코드를 디버깅 할 수 있지만 테스트 된 단위 테스트 코드와 코드를 디버깅 할 수없는 것 같습니다.Ruby on Rails에서 단위 테스트를 디버그 할 수 있습니까?

단위 테스트를 디버그 모드로 실행할 때 단위 테스트 클래스 코드에서 고정 점을 설정할 수 있습니다 (예 : 조명기가 추가되는 위치). 그러나 중단 점은 테스트 메소드 코드 내에서 작동하지 않으며 테스트 코드 내부에서 작동하지 않습니다. 정상적인 작업 과정에서 작업하십시오. 팀의 다른 모든 사람들은 단위 테스트 디버깅을 위해 print 문을 사용합니다.

레일에 단위 테스트 코드를 디버깅 할 수 있습니까?

우리는 jruby 1.3.1, rails-2.3.1을 사용하고 있으며 디버깅에는 IntelliJ IDEA를 사용합니다. 이클립스 또는 넷빈으로 전환해야 할 때도 괜찮습니다.

편집 : 실제로 "아니요, 불가능합니다"라고 대답하는 것이 도움이 될 것입니다. 적어도 나는 그것에 시간을 낭비하지 않을 것이다

+2

코드에'debugger' 문을 넣으면 단위 테스트에서 실행 중일 때도 디버거가 작동하지 않을 것입니다. –

+0

@calmh - 네, 고마워요. 작동합니다. –

답변

24

네, 가능합니다.

먼저 ruby-debug를 설치해야합니다.

sudo는 보석은 당신이 쓰는 루비 - 디버그

를 설치 디버거

즉시 디버깅을 시작하고자하는 줄 앞에.

다음 단계 : normaly처럼 단위 테스트를 실행하십시오. 루비가 중지됩니다 디버거 지시자를 포함하고 당신에게 콘솔 프롬프트를 표시 줄에 도달하는 순간

.

이제 gdb와 같은 방법으로 디버깅 할 수 있습니다.

이 링크는 아주 좋은 방법으로 그것을 설명 :

http://blog.nanorails.com/articles/2006/07/14/a-better-rails-debugger-ruby-debug 나는이 informtaion이 당신에게 유용 바랍니다.

+4

또한 디버거에 들어가면'irb'을 입력하여'script/console' 유형 환경으로 들어갑니다.이것은 당신의 시험이 잘못 된 곳을 알아내는 데 도움이 될 수 있습니다. – user664833

3

(늦은) 업데이트로 Ruby 2 디버깅을 목표로하는 byebug을 사용할 수도 있습니다.

또한 새로운 레일스 프로젝트와 함께 제공되는 Gemfile에는 기본적으로 포함되어 있으며 Debugging Rails Applications Guide에도 유용한 자습서가 있습니다.

당신은 당신의 테스트 파일에

byebug 

어디 삽입 한 다음 보통 때와 같이 테스트를 실행할 수 있습니다.

관련 문제