有没有办法在测试中获得在黄瓜测试期间运行rails应用程序的端口?我试过Capybara.server_port,但那是零。
感谢。
答案 0 :(得分:5)
使用selenium驱动程序时,可以在以下位置找到该端口:
Capybara.current_session.driver.rack_server.port
当使用webkit驱动程序时,可以在以下位置找到它:
Capybara.current_session.driver.server_port
另外,您可以设置
Capybara.server_port
到已知值并使用它。
答案 1 :(得分:3)
我的理解是,如果您使用的是机架测试,默认的Capybara驱动程序,那么实际上并没有任何真正的Web服务器正在运行来发出请求。
如果你想以Cucumber / Capybara的身份查看你的应用程序,那么你需要在选定的端口上手动启动它:
$ RAILS_ENV=test rails s -p 4000
然后在env.rb中有这样的东西:
Capybara.configure do |config|
config.run_server = false
config.app_host = "http://localhost:4000"
end