2011-10-20 74 views
3

在測試中,有沒有辦法在黃瓜測試期間獲得rails應用程序運行的端口?我嘗試了Capybara.server_port,但是這是零。運行黃瓜測試時Rails應用程序的端口

謝謝。

+0

[Cucumber/Capybara - 如何獲取當前執行的主機和端口]的可能重複(http://stackoverflow.com/questions/6791601/cucumber-capybara-how-to-get-the-host - 當前執行的端口) –

+0

[如何找到一個rails實例運行的本地端口?](http://stackoverflow.com/questions/1554267/how-to-find -the本地端口-A-Rails的實例中運行,上) –

回答

5

當使用硒驅動程序,端口上可以找到唱WebKit的驅動程序,它可以在發現:

Capybara.current_session.driver.server_port 

替代,可以設置

Capybara.server_port 

爲已知值並使用它。

3

我的理解是,如果您使用機架測試,默認的Capybara驅動程序,那麼實際上沒有任何真正的Web服務器運行來提出請求。

如果您想查看您的應用程序如黃瓜/水豚會,那麼你需要手動啓動它所選的端口上:

$ RAILS_ENV=test rails s -p 4000 

然後在env.rb是這樣的:

Capybara.current_session.driver.rack_server.port 

當U:

Capybara.configure do |config| 
    config.run_server = false 
    config.app_host = "http://localhost:4000" 
end