8

我在黄瓜中有一个失败的场景,我想使用 ruby​​-debug 调试我的 rails 控制器。但是,如果我将“调试器”添加到我想要中断的位置,它就不会停止。

我尝试将 ruby​​-debug 和 ruby​​gems 的 require 添加到 features/support/env.rb 但它告诉我它无法加载 ruby​​-debug,尽管 ruby​​-debug 在 gem 列表中,我可以加载它厄巴。

那么......我应该怎么做才能让它工作?

谢谢!

4

4 回答 4

12

我今天也遇到了同样的问题,我弄明白了。这是我的博客文章,解释了我让它工作的两种不同方式:

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-debug首先加载。

如果您遇到无法加载 gem 的问题,并且 gem 肯定列在您的 中Gemfile,请运行 cucumber,如下所示:

捆绑执行黄瓜...

这通常是捆绑程序所必需的。

于 2011-05-16T21:44:51.437 回答
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 回答