2010-02-26 34 views
14

Vì vậy, tôi vừa chuyển sang dự án mới được xây dựng trên Ruby on Rails. Tôi mới và tôi vẫn đang học nó. Tôi có thể gỡ lỗi hầu hết các mã ứng dụng, nhưng có vẻ như tôi không thể gỡ lỗi mã kiểm thử đơn vị và mã được kiểm tra. Khi tôi chạy thử nghiệm đơn vị trong chế độ gỡ lỗi, tôi có thể thiết lập điểm ngắt trong mã lớp thử nghiệm đơn vị, ví dụ như đồ đạc được thêm vào, nhưng điểm ngắt không hoạt động bên trong mã phương pháp thử nghiệm và không hoạt động bên trong mã thử nghiệm làm việc trong quy trình làm việc bình thường. Mọi người trong nhóm sử dụng lệnh in để gỡ lỗi kiểm tra đơn vị.Có thể gỡ lỗi các kiểm thử đơn vị trong Ruby on Rails không?

Vì vậy, thậm chí có thể gỡ lỗi mã kiểm tra đơn vị trong đường ray không?

Chúng tôi đang sử dụng jruby 1.3.1, rails-2.3.1 và tôi sử dụng IntelliJ IDEA để gỡ lỗi, tôi cũng ổn nếu tôi phải chuyển sang nhật thực hoặc netbeans.

EDIT: thực sự, "không, không thể" cũng sẽ là một câu trả lời hữu ích, nếu bạn biết nó là như vậy. Ít nhất tôi sẽ ngừng lãng phí thời gian vào nó

+2

Nếu bạn đặt một câu lệnh 'debugger' trong mã của bạn, nó sẽ phá vỡ trình gỡ rối, ngay cả khi chạy trong một bài kiểm tra đơn vị, không? –

+0

@calmh - vâng, cảm ơn, nó cũng hoạt động –

Trả lời

24

Có, điều đó là có thể.

Trước hết, bạn phải cài đặt gỡ lỗi ruby.

sudo gem install ruby-debug

sau đó bạn viết

debugger

ngay trước dòng bạn muốn để bắt đầu gỡ rối.

Bước tiếp theo: chạy thử nghiệm đơn vị của bạn như bạn sẽ làm bình thường.

Hiện tại, ruby ​​đạt đến dòng chứa chỉ thị trình gỡ lỗi chỉ thị nó sẽ dừng và hiển thị cho bạn lời nhắc trên bảng điều khiển.

Bây giờ bạn có thể gỡ lỗi giống như cách bạn làm với gdb.

liên kết này giải thích nó theo một cách rất thoải mái: http://blog.nanorails.com/articles/2006/07/14/a-better-rails-debugger-ruby-debug

Tôi hy vọng informtaion này sẽ hữu ích cho bạn.

+4

Ngoài ra, khi bạn đang ở trong trình gỡ lỗi, hãy nhập 'irb' để vào môi trường kiểu 'script/console'.Điều này có thể giúp bạn tìm ra nơi thử nghiệm của bạn đã đi sai. – user664833

3

Là bản cập nhật (muộn), bạn cũng có thể sử dụng byebug nhắm mục tiêu gỡ lỗi Ruby 2.

Nó cũng được bao gồm theo mặc định trong Gemfile đi kèm với bất kỳ dự án Rails mới nào và cũng có hướng dẫn thú vị trong Debugging Rails Applications Guide.

Bạn chỉ có thể chèn

byebug 

bất cứ nơi nào trong tập tin thử nghiệm của bạn và sau đó chạy thử nghiệm như bình thường.

Các vấn đề liên quan