1

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

我希望能够为我的测试环境使用与我的开发环境不同的一组 API 密钥。

我尝试根据我所看到的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. 但这对我来说感觉不对。

4

1 回答 1

2

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

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

于 2019-08-09T04:47:19.503 回答