如何在rspec测试期间启动辅助导轨应用程序?

时间:2017-02-16 06:29:54

标签: ruby-on-rails selenium rspec capybara

我有2个rails应用。一个是Web界面(我称之为 UI ),另一个是API服务器(我称之为 API )。

它们在一起交互,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时,我没有这个错误。

我认为Rack与2种环境相混淆

1 个答案:

答案 0 :(得分:0)

在方案启动之前,您需要确保API正在运行。如果未运行,则可以通过添加before hook:

来添加规则以启动它
#features/supports/app_life_cycle_hooks.rb
Before do |scenario|
  start_api()   
end

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