我在试图让一个黄瓜的例子在硒下运行时遇到了麻烦。我正在跑步
在https://github.com/jnicklas/capybara上阅读doco,看来我需要在selenium下运行示例所需的全部内容是:
步骤1:使用@javascript
添加方案前缀@javascript
Scenario: User does x
...
步骤2:配置env.rb告诉capybara使用哪个驱动程序:
Capybara.javascript_driver = :selenium
当我跑步时:
bundle exec cucumber feature/myfeature.feature
我得到以下内容:
Using the default profile...
F------------F
Failing Scenarios:
cucumber features/myfeature.feature:7 # Scenario: User does x
1 scenario (1 failed)
12 steps (12 skipped)
0m0.012s
没有firefox窗口。没有。它运行,挂起和死亡。
因此,为了检查水豚和selenium webdriver是否正常工作,我写了以下代码:
require 'capybara'
require 'capybara/dsl'
Capybara.default_driver = :selenium
class Test
include Capybara
def dotest
visit('http://www.stackoverflow.com')
end
end
Test.new.dotest
使用以下方式运行:
bundle exec ruby /tmp/test.rb
有效。 Firefox打开窗口并导航到www.stackoverflow.com。
那么如何获取诊断信息以了解黄瓜对水豚的作用呢?
我正在运行OSX10。,Ruby 1.8.7和Firefox 3.6.13。
答案 0 :(得分:7)
好的......我发现了我的问题。在黄瓜碗的某个地方依赖于DatabaseCleaner,当你使用selenium驱动程序时,它会被触发一次。失败声明:
F______________F
告诉我在安装和拆卸过程中发生了故障。黄瓜没有报告异常,即使使用-b它也没有做任何事情。
我是如何发现问题的:
将ruby-debug添加为gem依赖
将“ruby-debug”添加到env.rb
我在env.rb中添加了以下语句:
Before do breakpoint; 0 end
使用bundle exec运行该功能。调试器启动了。
输入 cat StandardError ,它会在抛出“StandardError”时告诉调试器断点。 StandardError是Cucumber中所有错误的基类。我们想要做的是找出错误发生的位置和原因。
输入 cont 告诉调试器恢复
将数据库清理程序添加为gem依赖项后,一切都消失了。 Firefox开始启动,事情开始按照宣传的方式发挥作用。
答案 1 :(得分:0)
你试过吗
bundle exec cucumber feature/myfeature.feature
!!