RubyMine - 如何调试Cucumber Step文件?我用谷歌搜索了一下,我发现的任何信息对我都不起作用。有没有人在使用RubyMine时获得要调试的步骤文件?
由于
答案 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的问题。