5
我想測試使用rspec結合法拉第和faraday_middleware的Rails應用程序的json響應。要使用法拉第,需要應用程序URL。在測試中我想使用localhost +端口號。Rails應用程序的端口號在rspec測試
問題是,我怎樣在rspec測試環境中獲取或設置當前應用程序實例的端口號?
任何想法?
我想測試使用rspec結合法拉第和faraday_middleware的Rails應用程序的json響應。要使用法拉第,需要應用程序URL。在測試中我想使用localhost +端口號。Rails應用程序的端口號在rspec測試
問題是,我怎樣在rspec測試環境中獲取或設置當前應用程序實例的端口號?
任何想法?
我有同樣的需要(+的Watir RSpec的),但問題是:有是在測試過程中運行默認情況下沒有機架堆疊...
我發現這個解決方案:
在spec_helper.rb
:
HTTP_PORT = 4000
test_instance_pid = fork do
exec 'unicorn_rails -E test -p %d' % HTTP_PORT
end
at_exit do
Process.kill "INT", test_instance_pid
Process.wait
end
它對所有規格測試啓動一次測試堆棧,並在最後殺死它。 (在此示例中,我使用的麒麟,但是我們可以想象使用任何其他服務器)
在規範,我重用HTTP_PORT
不斷建立網址:需要確切的
browser.goto "http://localhost:#{HTTP_PORT}/"
上午一樣。希望你能得到答案。 – Tass
剛發佈了對類似問題的回覆[here](http://stackoverflow.com/a/17496025/535171)。 – JKubecki