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

Ruby on rails 使用Foreman时如何为测试和开发设置不同的环境变量,ruby-on-rails,testing,foreman,ruby-dotenv,Ruby On Rails,Testing,Foreman,Ruby Dotenv,目前,我将敏感信息(例如API密钥)存储在由Foreman gem加载的.env文件中。这工作得很好,我能够访问在开发和测试中都相同的环境变量 我希望能够为我的测试环境使用一组不同于开发环境的API键 根据我所看到的,我试着做一些类似.env.development和.env.test的事情 如果有用的话,这里是我正在使用的通用堆栈:Rails 5.2.3、Minitest、Guard(在save上运行测试)和Foreman。目前,此应用程序正在部署到Heroku 这是我的测试助手.rb: EN

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

我希望能够为我的测试环境使用一组不同于开发环境的API键

根据我所看到的,我试着做一些类似
.env.development
.env.test
的事情

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

这是我的
测试助手.rb

ENV['RAILS_ENV']| |='test'
需要\u相对“../config/environment”
需要“rails/test\u帮助”
需要“录像机”
VCR.configure do | config|
config.caste\u library\u dir=“测试/磁带”
config.hook_进入:法拉第
结束
类ActiveSupport::TestCase
#按字母顺序在test/fixtures/*.yml中为所有测试设置所有夹具。
固定装置:全部
#在此处添加所有测试要使用的更多帮助器方法。。。
结束

我目前的解决办法是使用一个附加的环境变量,其后缀为
\u test
,用于在
test\u helper.rb
中重写ENV。不过我觉得这不太合适。

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

如果您正在使用dotenv rails gem加载环境变量,则只会为测试环境自动加载
.env.test.local