Ruby on rails 使用Foreman时如何为测试和开发设置不同的环境变量
目前,我将敏感信息(例如API密钥)存储在由Foreman gem加载的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
.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