【问题标题】:How to test production build of Rails project with same Rpec tests?如何使用相同的 Rpec 测试来测试 Rails 项目的生产版本?
【发布时间】:2017-11-08 07:47:47
【问题描述】:

我正在使用 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 测试不生成自己的服务器,而是使用已经在后台运行的不同服务?

【问题讨论】:

    标签: ruby-on-rails docker rspec bundler


    【解决方案1】:

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

    通常 grep 获得成功信息就足够了 - 你可以做一个简单的冒烟测试,但随后你会走上金丝雀部署的道路(这很好,只是心态不同......)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      相关资源
      最近更新 更多