Blu*_*ish 5 macos selenium cucumber capybara ruby-on-rails-3
我在试图让一个黄瓜的例子在硒下运行时遇到了麻烦.我在跑
在https://github.com/jnicklas/capybara上阅读doco ,似乎我需要在selenium下运行示例所需的全部内容如下:
第1步:使用@javascript为场景添加前缀
@javascript
Scenario: User does x
...
Run Code Online (Sandbox Code Playgroud)
步骤2:配置env.rb告诉capybara使用哪个驱动程序:
Capybara.javascript_driver = :selenium
Run Code Online (Sandbox Code Playgroud)
当我跑:
bundle exec cucumber feature/myfeature.feature
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:
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
Run Code Online (Sandbox Code Playgroud)
没有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
Run Code Online (Sandbox Code Playgroud)
并运行它:
bundle exec ruby /tmp/test.rb
Run Code Online (Sandbox Code Playgroud)
这样可行.Firefox打开窗口并导航到www.stackoverflow.com.
那么我怎样才能获得诊断信息以了解黄瓜对水豚的作用?
我正在运行OSX10.,Ruby 1.8.7和Firefox 3.6.13.
好的...我发现了我的问题.在黄瓜碗中的某个地方依赖于DatabaseCleaner,当您使用selenium驱动程序时,它会被触发一次.失败声明:
F______________F
Run Code Online (Sandbox Code Playgroud)
告诉我,故障发生在设置和拆解中.Cucumber没有报告异常,即使使用-b也没有做任何事情.
我是怎么发现这个问题的:
将ruby-debug添加为gem依赖项
添加需要"ruby-debug"到env.rb
我在env.rb中添加了以下语句:
Run Code Online (Sandbox Code Playgroud)Before do breakpoint; 0 end
使用bundle exec运行该功能.调试器启动了.
输入cat StandardError,它会在抛出"StandardError"时告诉调试器断点.StandardError是Cucumber中所有错误的基类.我们想要做的是找出错误被抛出的地方和原因.
输入cont告诉调试器恢复
将database-cleaner作为gem依赖项添加后,一切都消失了.Firefox开始启动,事情就像宣传的那样开始工作.
| 归档时间: |
|
| 查看次数: |
2483 次 |
| 最近记录: |