ruby-on-rails - 使用Foreman时如何设置不同的环境变量用于测试和开发

标签 ruby-on-rails testing foreman ruby-dotenv

目前,我将敏感信息(例如 API key )存储在由 Foreman gem 加载的 .env 文件中。这效果很好,我能够访问开发和测试中相同的环境变量。

我希望能够在我的测试环境中使用与我的开发环境不同的 API key 集。

我根据我所看到的 https://www.rubydoc.info/gems/dotenv/2.7.5 尝试执行 .env.development.env.test 之类的操作

如果它有用的话,这里是我正在使用的通用堆栈:Rails 5.2.3、Minitest、Guard(在保存时运行我的测试)和 Foreman。目前该应用程序正在部署到 Heroku。

这是我的test_helper.rb:

ENV['RAILS_ENV'] ||= 'test'
require_relative '../config/environment'
require 'rails/test_help'
require 'vcr'

VCR.configure do |config|
  config.cassette_library_dir = "test/cassettes"
  config.hook_into :faraday
end

class ActiveSupport::TestCase
  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
  fixtures :all

  # Add more helper methods to be used by all tests here...
end

我当前的解决方法是添加一个后缀为 _test 的附加环境变量,我用它来覆盖 test_helper.rb 中的 ENV。但我感觉不太对劲。

最佳答案

默认情况下将使用 .env 文件,但您可以创建第二个文件,例如 .env2 并将其与 foreman start --env 一起使用。 env2.

如果您使用 dotenv-rails gem 加载环境变量,.env.test.local 将自动加载测试环境。

关于ruby-on-rails - 使用Foreman时如何设置不同的环境变量用于测试和开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419056/

相关文章:

python - Django - Foreman 找不到已安装的模型

ruby-on-rails - 使用 Wicked_pdf gem 和 wkhtmltopdf-binary-edge 时 Rails 应用程序挂起

ruby-on-rails - 无法找到字段 "Email"Rspec

c++ - 在 XCode 4.4.1 上构建 gtest 框架

variables - caffe 在测试阶段忘记设置变量

node.js - Foreman 忽略 .foreman 文件中的默认端口

ruby-on-rails - 在 Rails 中跟踪代码时遇到问题

ruby-on-rails - 如何加载 Globalize 翻译装置来测试模型?

ios - 调用异步方法的方法的单元测试

ruby - 如何与工头一起运行多个 bundle 的多个应用程序