2017-02-16 72 views
0

我有2個rails應用程序。一個是Web界面(我稱之爲UI),另一種是API服務器(我稱之爲API)。如何在rspec測試期間啓動輔助導軌應用程序?

它們一起交互,UI正在向API發送json命令。我想在集成中測試所有這些。今天,我手動從命令行啓動API,並且正在尋找一種從測試套件自動啓動API服務器的方法。

我正在使用Capyraba,Selenium,Rspec。在測試過程中,Capybara會自動啓動一個UI服務器,我還需要啓動一個API服務器。

任何提示讚賞。由於


我試圖Process.spawn("cd /api/project/path && rails s -e test")但我得到一個錯誤ActionController::RoutingError: No route matches說,在API的路徑不存在。但是當我手動運行API時,我沒有這個錯誤。

我相信機架是越來越有2個環境

回答

0

你需要確保你的場景開始之前API運行混淆。

#features/supports/app_life_cycle_hooks.rb 
Before do |scenario| 
    start_api() 
end 

def start_api() 
Process.spawn("./script/server start") 
end 
+0

'system'阻塞,是不是:你可以,如果不是由before鉤將運行添加規則來啓動它? –

+0

更好使用'Process.spawn' –

+0

感謝您的建議。可悲的是它不起作用。我得到了'Rack應用程序錯誤處理請求{POST/api/path/i_m/testing} #'。當然,當我手動啓動APi時,這個錯誤並沒有增加。 – Benj