我有一个测试程序,它通过向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
产生一个内存地址,所以我知道当前的会话正在运行。
这是在宝石文件中使用Capybara设置的:
gem 'capybara', '~> 2.0.2
我已经看到了几个基于此的问题,但他们的答案对我不起作用。具体来说,Capybara似乎没有像我指定的那样设置当前主机或url,也不是实际允许我查看当前会话的内容。那么我该如何解决这个问题并指定一个特定的端口和网址?
答案 0 :(得分:16)
对于水豚< 2.0:
Capybara.current_session.driver.rack_server.host
Capybara.current_session.driver.rack_server.port
Capybara 2.0:
Capybara.current_session.server.host
Capybara.current_session.server.port
我在这里找到答案:Cucumber / Capybara -- how to get the host and port of the current execution
答案 1 :(得分:1)
Capybara.current_session.driver.server.port