RubyMine - 如何调试Cucumber Step文件?

时间:2013-02-25 22:38:14

标签: ruby cucumber rubymine

RubyMine - 如何调试Cucumber Step文件?我用谷歌搜索了一下,我发现的任何信息对我都不起作用。有没有人在使用RubyMine时获得要调试的步骤文件?

由于

5 个答案:

答案 0 :(得分:1)

将'pry'添加到您的Gemfile

要求'撬'(靠近顶部,或在你的启动/挂钩中)

在您要调试的步骤中,当您遇到问题时: binding.pry

这会将您转储到REPL中,您可以在其中检查所有局部变量等。如果您使用selenium与浏览器进行交互,您还可以查看浏览器,使用'inspect element',然后查看是否可以找到元素与硒的召唤。

你也可以迈出一步(我的名字叫'我调试')除了调用binding.pry之外什么都不做。如果您只想暂时停止selenium自动化,这非常有用。要退出REPL,请使用“退出”或^ D。

您必须从命令行运行cukes才能有效地使用它;不知道rubymine有什么特点。

答案 1 :(得分:1)

网上有很多很多失败的解决方案,这是一个很常见的问题。您不需要任何新宝石,也无需更改设置。

很可能,您在根文件夹中拥有所有功能文件。

这听起来很荒谬,但是创建一个新文件夹,将功能文件放在那里(称之为通用的“测试”)。

设置断点,然后重试。这应该可以解决它。

答案 2 :(得分:1)

在我的情况下,我在Gemfile

中的正确组中没有'debugger'gem

确保:

group :development, :test do
  gem 'debugger'
end

不再推荐使用调试器gem,请尝试使用debugger2

答案 3 :(得分:0)

添加以下内容作为features / support / debugging.rb的内容可能有助于调试失败的步骤:

# `LAUNCHY=1 cucumber` to open page on failure
After do |scenario|
  save_and_open_page if scenario.failed? && ENV['LAUNCHY']
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 on failure
After do |scenario|
  next unless ENV['DEBUG'] && scenario.failed?
  puts "Debugging scenario: #{scenario.title}"
  if respond_to? :debugger
    debugger
  elsif binding.respond_to? :pry
    binding.pry
  else
    puts "Can't find debugger or pry to debug"
  end 
end

# `STEP=1 cucumber` to pause after each step
AfterStep do |scenario|
  next unless ENV['STEP']
  unless defined?(@counter)
    puts "Stepping through #{scenario.title}"
    @counter = 0
  end
  @counter += 1
  print "At step ##{@counter} of #{scenario.steps.count}. Press Return to"\
        ' execute...'
  STDIN.getc
end

通过设置环境变量,可以使Cucumber使用各种调试工具,您可以通过设置多个环境变量来组合它们。

答案 4 :(得分:-1)

不是RubyMine,但如果您对CLI感到满意,调试器 gem有很多帮助

[sudo] gem install debugger

然后在相关LOC之前放置关键字调试器并正常运行黄瓜。 调试器将在您遇到问题的LOC之前停止。

我用它来逐步解决Cucumber / WATIR的问题。

https://github.com/cldwalker/debugger