加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rspec:运行外部rails服务器

发布时间:2020-12-16 21:04:59 所属栏目:百科 来源:网络整理
导读:这个问题是关于从rspec环境启动外部项目的rails服务器. 有2个项目. 第一个项目充当管理后台,它是用户与网页交互的中央应用程序.我称之为BackOffice 第二个项目是一个Json API服务器,它将通过json请求从Admin Back Office接收命令.我称之为ApiServer 我正在尝
这个问题是关于从rspec环境启动外部项目的rails服务器.

有2个项目.

>第一个项目充当管理后台,它是用户与网页交互的中央应用程序.我称之为BackOffice
>第二个项目是一个Json API服务器,它将通过json请求从Admin Back Office接收命令.我称之为ApiServer

我正在尝试测试这两个rails项目之间的API交互,我想设置rspec,这样我就可以在BackOffice项目中编写和维护我的spec文件.这些规范将启动ApiServer rails服务器,然后播放以执行测试.

我的问题是关于启动ApiServer rails服务器.在查看rails app初始化文件后,我假设我必须向“config / environment”添加一个require.

但是当我插入BackOffice / spec / spec_helper.rb时

require File.expand_path('../../../ApiServer/config/environment',__FILE__)

我收到了错误

`initialize!': Application has been already initialized. (RuntimeError)
# Backtrace to the file:
# ApiServer/config/environment.rb
# Line:
# Rails.application.initialize!

我还尝试在反引号中简单地调用以下内容

`cd /api/path; bundle exec rails s -p 3002`

但得到了同样的错误

然后我从Capybara源代码中获得灵感,并且需要“ApiServer / application”,然后我能够创建一个ApiServer.new对象,但是只要我调用initialize就可以了!它上面我得到了同样的信息.

任何帮助是极大的赞赏.干杯

解决方法

实际上第二个应用程序只不过是一个外部服务,这对于测试来说更好.

thinkbot有一篇关于使用vcr gem来模拟外部Web服务的好文章:

https://robots.thoughtbot.com/how-to-stub-external-services-in-tests

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读