获得超时::水豚和红宝石的错误

时间:2012-12-12 15:21:46

标签: ruby cucumber capybara

我在测试中使用黄瓜+水豚

env.rb
Capybara.run_server = false
Capybara.default_driver = :selenium
World(Capybara::DSL)

在我的测试中,我点击链接

Then /^I see deals on map$/ do
  find("#dealmap").click
end

以上操作是打开一个图层(div)但是该过程停留在find(“#dealmap”)上。单击方法。 5秒后我收到以下错误

 Timeout::Error (Timeout::Error)
      /usr/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
      /usr/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
      /usr/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
      /usr/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
      /usr/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
      /usr/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
      /usr/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
      /usr/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
      /usr/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
      /usr/lib/ruby/1.9.1/net/http.rb:1293:in `request'
      /usr/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
      /usr/lib/ruby/1.9.1/net/http.rb:745:in `start'
      /usr/lib/ruby/1.9.1/net/http.rb:1284:in `request'
      ./features/frontend/step_definitions/search_results_page.rb:2:in `/^I see deals on map$/'
      features/frontend/search_results_page.feature:6:in `Then I see deals on map'

注意: 我已经尝试过增加时间,但它没有解决问题

我无法解决问题。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为问题来自这一行

Capybara.run_server = false

如果您正在运行基于机架的测试,则需要此功能。删除它并重新运行测试。

如果您正在运行基于Web的测试,您可能希望将其保留在那里 - 并且仅仅因为您使用Selenium并不意味着您正在运行Web基础测试。您仍然在浏览器中运行基于机架的测试。