当我访问url时,Cucumber / Capybara测试返回Addressable :: URI :: InvalidURIError

时间:2015-08-04 11:51:51

标签: ruby-on-rails ruby cucumber capybara

我无法访问以下网址“http://localhost:7000/login/next=” 在我的页面对象中,我设置了以下内容:

class LoginPage < SitePrism::Page
    set_url "/login/next="

我在env.rb文件中设置了以下内容

Capybara.app_host = "http://localhost:7000"
Capybara.server_host = "localhost"
Capybara.server_port = "7000"

并要求以下内容:

require 'uri'
require 'net/http'
require 'open-uri'

当我运行测试时,它会得到以下

Cannot assemble URI string with ambiguous path: ':7000/login/next='(Addressable::URI::InvalidURIError)

Capybara不喜欢网址中的端口/主机。有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

当您在本地运行时,不应设置Capybara.app_host。来自Capybara

  

通常,Capybara希望测试一个进程中的Rack   应用程序,但您也可以使用它与运行的Web服务器通信   在互联网上的任何地方,通过设置app_host:

     

Capybara.server_port = 10000

你可以设置 <%=((Recordset1.Fields.Item("FullCover").Value)*90/100)%> 。另外我认为server_port期望一个数字不是字符串。