我有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种环境相混淆
答案 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