13

我有一个测试程序,它通过向 Rails 服务器发送数据块来模拟用户的 iOS 设备。该程序在测试之外运行良好。在测试中,由于找不到服务器,程序立即超时。

我的配置,在 env.rb 中:

require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Capybara.server_port = 3123
Capybara.app_host = "http://0.0.0.0:3123"

在测试中,我尝试过类似的东西

puts Capybara.current_session.current_host
puts Capybara.current_session.current_url

等等,但这些都是空白的。正在做:

放 Capybara.current_session

产生一个内存地址,所以我知道当前会话正在工作。

这是在 gemfile 中设置的 Capybara :

gem 'capybara', '~> 2.0.2

我已经看到了几个基于此的问题,但他们的答案对我不起作用。具体来说,Capybara 似乎没有像我指定的那样设置当前主机或 url,它实际上也不允许我查看当前会话的内容。那么我该如何解决这个问题并指定一个特定的端口和 url?

4

2 回答 2

20

对于水豚 < 2.0:

Capybara.current_session.driver.rack_server.host
Capybara.current_session.driver.rack_server.port

水豚2.0:

Capybara.current_session.server.host
Capybara.current_session.server.port

我在这里找到了答案:Cucumber / Capybara -- 如何获取当前执行的主机和端口

于 2014-12-14T09:48:15.167 回答
2
Capybara.current_session.driver.server.port
于 2014-03-12T09:47:48.077 回答