如何使用相同的Rpec测试来测试Rails项目的生产版本?

时间:2017-11-08 07:47:48

标签: ruby-on-rails docker rspec bundler

我正在使用Rails构建JSON API服务,并使用docker在生产环境中运行它。在我的Dockerfile中,我想使用:

RUN bundle install --without development test

我有点担心的是,Gemfile可能包含:development:test中非常重要的内容。

这是一个人为的例子Gemfile

# Example situation which works in development and tests but fails in production
group :development, :test do
  gem 'rails', '~> 5.1.4'
end

在这种情况下,测试通过就好了,但生产真的会被打破。

所以我正在考虑构建生产容器并使用docker运行它并公开端口进行测试。对该容器使用相同的Rspec type: request测试真是太棒了。测试运行器和rails服务器可以共享相同的测试数据库。

我如何强制我的Rspec测试不会产生自己的服务器,而是使用已在后台运行的其他服务?

1 个答案:

答案 0 :(得分:0)

我过去所做的是构建我的docker容器,然后运行它,等待10秒,然后grep日志以获取应用程序服务器的成功消息。

通常对成功信息的贪婪是足够的 - 你可以做一个简单的烟雾测试,但是你会走上金丝雀部署的道路(这很好,这只是一种不同的心态......)

相关问题