2013-02-25 117 views
3

RubyMine - 如何调试Cucumber Step文件?我已经使用了这一点,我发现的任何信息都不适合我。有没有人有使用RubyMine时的步骤文件调试?RubyMine - 如何调试Cucumber步骤文件?

感谢

+0

[开箱即用](http://img200.imageshack.us/img200/2456/20130226141046.png)。你有什么具体问题?请注意,您无法调试功能文件。 – CrazyCoder 2013-02-26 10:11:28

回答

1

窘况常见的问题有许多,许多失败的在线解决方案。您不需要任何新的宝石,也不需要更改设置。

很有可能,您的所有功能文件都位于根文件夹中。

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

设置断点,然后重试。这应该补救它。

1

增加“撬”到您的Gemfile

需要“撬”(高达上方附近,或在你的启动/钩子)

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

这将您转储到REPL中,您可以检查所有本地变量等。如果您使用硒与浏览器进行交互,还可以查看浏览器,使用'检查元素',th查看是否可以使用硒调用查找元素。你也可以做一个步骤(我叫做“我调试”),它除了调用binding.pry之外什么都不做,如果您只是想暂时停止硒自动化,这很有用。要退出REPL,请使用“退出”或^ D。

你将不得不从命令行运行你的cukes来有效地使用它;不确定有什么特点是由于rubymine。

-1

不RubyMine的,但如果你是舒服CLI的调试宝石有很大帮助

[sudo] gem install debugger

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

我一直用这个来解决Cucumber/WATIR的问题。

https://github.com/cldwalker/debugger

+0

什么是LOC?我在我的步骤定义中放置了'debugger',但执行没有停止。 – Green 2013-07-02 17:51:38

1

在我来说,我没有在适当的组中的Gemfile

的“调试”宝石确保:

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

调试宝石不再推荐,尝试debugger2代替。

0

添加以下内容作为功能/支持/调试的内容。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 

通过设置环境变量,你可能会导致黄瓜使用各种调试工具,你可以通过设置多个环境变量将它们结合起来。