ruby 2.1.0를 사용중이며, debug(디버그)를 위해 pry와 pry-nav를 설치한다.
$ gem install pry
$ gem install pry-nav
ruby 테스트 코드 작성
$ cat Point.rb
require 'pry'
class Point
attr_accessor :x, :y
attr_reader :zzz
def say_hello
puts "Hello World"
end
end
def another_hello
puts "Hello World (from a method)"
end
p = Point.new
p.say_hello
p.x = 10
binding.pry
puts p.x
another_hello
소스 중에 break하고 싶은 곳을 'binding.pry'을 입력하고 실행하면, 디버그콘솔화면이 나온다. 간단하게 테스를 할 수 있다.
$ ruby Point.rb
Hello World
From: /mydev/test/ruby/Point.rb @ line 18 :
13: end
14:
15: p = Point.new
16: p.say_hello
17: p.x = 10
=> 18: binding.pry
19: puts p.x
20: p.zzz = 20
21: another_hello
[1] pry(main)> puts p.x
10
=> nil
[2] pry(main)> puts p.y
=> nil
[5] pry(main)> def plus(a, b)
[5] pry(main)* return a + b
[5] pry(main)* end
=> :plus
[6] pry(main)> p.y = 0
=> 0
[7] pry(main)> plus(p.x, p.y)
=> 10
[8] pry(main)> exit
디버그 에서 하듯이 setp/next/continue/exit를 할 수 있다.
Samuel /mydev/test/ruby $ ruby Point.rb
Hello World
From: /mydev/test/ruby/Point.rb @ line 18 :
13: end
14:
15: p = Point.new
16: p.say_hello
17: p.x = 10
=> 18: binding.pry
19: puts p.x
20: another_hello
[1] pry(main)> next
From: /mydev/test/ruby/Point.rb @ line 19 :
14:
15: p = Point.new
16: p.say_hello
17: p.x = 10
18: binding.pry
=> 19: puts p.x
20: another_hello
주로 사용하는 ruby 명령어는 다음과 같다.
- next : 다음 한 단계 진행
- step : 다음 한 단계 진행 또는 메소드 진입
- continue : 다음 binding.pry 까지 진행 또는 binding.pry 없으면 코드 끝까지 실행
- quit, exit : 모든 코드 실행후 종료
- !!! : 바로 종료
- help : 도움말
기타
- watch 테스트
[1] pry(main)> watch p
Watching p
watch: p => #<Point:0x007ffa1580fb80 @x=10>
'Ruby' 카테고리의 다른 글
[ruby] irb 빠른 종료 (부제 : alias) (0) | 2014.09.14 |
---|---|
[ruby] tab누르면 자동완성(auto completion) / irb 색상 예쁘게 하기 (0) | 2014.09.14 |
zookeeper client 'zk' 이용하기 (zkcli 한계 극복) (0) | 2014.09.12 |
[ruby] expect (0) | 2014.08.29 |
java 개발자를 위한 ruby 공부 (only 링크) (0) | 2014.08.24 |