2011-02-04 33 views
8

Tôi có một kịch bản thất bại trong dưa chuột, và tôi muốn gỡ lỗi bộ điều khiển đường ray của mình bằng cách sử dụng tính năng gỡ lỗi ruby. Nhưng nếu tôi thêm 'trình gỡ rối' vào điểm mà tôi muốn phá vỡ, nó sẽ không dừng lại.ruby-debug và dưa chuột

Tôi đã thử thêm yêu cầu ruby-debug và rubygems vào các tính năng/support/env.rb nhưng sau đó nó nói với tôi rằng nó không thể tải ruby-debug, mặc dù ruby-debug nằm trong danh sách đá quý và tôi có thể tải nó trong irb.

Vì vậy, tôi nên làm gì để nó hoạt động?

Cảm ơn!

+0

gì phiên bản của Ruby bạn đang sử dụng? –

+0

ruby ​​1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32] trên Windows Vista – Thiago

Trả lời

1

Thử thêm breakpoint thay vì debugger.

Điều đó sẽ hoạt động

+0

xin lỗi, nó không hoạt động đối với tôi – Thiago

0

Khóa chính ở đây chắc chắn nhận được ruby-debug được tải trước.

Nếu bạn đang gặp vấn đề với đá quý không tải, và đá quý chắc chắn được liệt kê trong Gemfile của bạn, hãy chạy dưa chuột như:

dưa chuột exec bó ...

Đây thường là cần thiết với bundler.

0

Đối với phiên bản của Ruby hiện đại của một trình gỡ lỗi (sử dụng binding.pry), tôi khuyên bạn nên tạo một file features/support/debugging.rb với những nội dung sau đây, và sau đó gọi dưa chuột với các biến môi trường thiết lập để debug:

# `LAUNCHY=1 cucumber` to open page on failure 
After do |scenario| 
    # rubocop:disable Lint/Debugger 
    save_and_open_page if scenario.failed? && ENV['LAUNCHY'] 
    # rubocop:enable Lint/Debugger 
end 

# `FAST=1 cucumber` to stop on first failure 
After do |scenario| 
    Cucumber.wants_to_quit = ENV['FAST'] && scenario.failed? 
end 

# `DEBUG=1 cucumber` to drop into debugger 
Before do |scenario| 
    next unless ENV['DEBUG'] 
    # rubocop:disable Lint/Debugger 
    puts "Debugging scenario: #{scenario.title}" 
    binding.pry 
    # rubocop:enable Lint/Debugger 
end 
Các vấn đề liên quan