运行Cucumber测试时Rails应用程序的端口
有没有办法在测试中获得在黄瓜测试期间运行rails应用程序的端口? 我试过Capybara.server_port,但那是零。
谢谢。
使用selenium驱动程序时,可以在以下位置找到该端口:
Capybara.current_session.driver.rack_server.port
当使用webkit驱动程序时,可以在以下位置找到它:
Capybara.current_session.driver.server_port
另外,你可以设置
Capybara.server_port
已知值并使用它。
我的理解是,如果你使用机架测试,默认的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