8

cucumber で失敗するシナリオがあり、ruby-debug を使用して Rails コントローラーをデバッグしたいと考えています。でも、壊したいところに「デバッガ」を追加すると止まらない。

ruby-debug と ruby​​gems の require を features/support/env.rb に追加しようとしましたが、ruby-debug は gem リストにあり、ロードできますが、ruby-debug をロードできないと表示されます。 irb。

それで...それを機能させるにはどうすればよいですか?

ありがとう!

4

4 に答える 4

12

今日も同じ問題があり、それを理解しました。これは、私がそれを機能させた2つの異なる方法を説明する私のブログ投稿です。

http://lostechies.com/derickbailey/2011/06/29/debugging-cucumber-tests-with-ruby-debug/

require "ruby-debug"features/support/env.rb ファイルに追加するだけで機能する場合があります。

于 2011-06-29T19:37:02.337 に答える
1

breakpointの代わりに追加してみてくださいdebugger

それはうまくいくはずです

于 2011-02-04T13:22:47.290 に答える
0

最新の Ruby バージョンのデバッガー (binding.pry を使用) の場合features/support/debugging.rb、次の内容のファイルを作成し、環境変数をデバッグに設定して cucumber を呼び出すことをお勧めします。

# `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
于 2015-06-17T04:09:10.060 に答える
0

ここで重要なのは、間違いなくruby-debug最初にロードされることです。

gem が読み込まれないという問題があり、gem が確実に にリストされている場合はGemfile、次のように cucumber を実行します。

bundle exec cucumber ...

これは、バンドラーで必要になることがよくあります。

于 2011-05-16T21:44:51.437 に答える