ruby-on-rails - 如何最好地在基于 Rack 的应用程序中定义 ENV 变量?
问题描述
我正在玩 Jeremy Evans 的 RODA https://roda.jeremyevans.net/。但是,我在为我的 Test_Environment 设置环境变量时遇到问题。
config/initializers/contenful_model.rb
ContentfulModel.configure do |config|
config.space = ENV.fetch('CONTENTFUL_SPACE_ID')
config.access_token = ENV.fetch('CONTENTFUL_ACCESS_TOKEN')
config.environment = "master"
end
.env.rb
case ENV['RACK_ENV'] ||= 'development'
when 'test'
ENV['CONTENTFUL_SPACE_ID'] ='key-here'
ENV['CONTENTFUL_ACCESS_TOKEN'] =''
when 'production'
ENV['CONTENTFUL_SPACE_ID'] ='key-here'
ENV['CONTENTFUL_ACCESS_TOKEN'] ='key-here'
else
ENV['CONTENTFUL_SPACE_ID'] ='key-here'
ENV['CONTENTFUL_ACCESS_TOKEN'] ='key-here'
end
规范/spec_helper.rb
ENV["RACK_ENV"] = "test"
require_relative '../../models/recipe'
require_relative '../../config/initializers/contentful_model'
require_relative '../minitest_helper'
它适用于开发,但是,初始化程序中的配置在测试环境中不可用。我目前在spec/spec_helper.rb中对这些凭据进行硬编码,公开它们没有意义。我确实在我的.env.rb文件中为 Test RACK_ENV 设置了 ENV 变量,但我的测试环境无法访问它。如何获得可用于测试环境的环境变量?
解决方案
显然,唯一的问题是我没有.env.rb
在规范助手目录中加载文件。所以为我解决它是.env.rb
在我的文件中要求文件spec_helper.rb
并且它有效。
规范/spec_helper.rb
require_relative '../../.env.rb'
推荐阅读
- sql - bigquery 使用正则表达式连接表
- angular - 在 Angular 组件的其余部分之前完全加载订阅
- c# - 如何使用 Mutex 解决可能的竞争条件
- python - 为什么 win32api.SendMessage 不能在某些应用程序中执行鼠标点击
- php - 如何将 argv 与 file_get_contents 或 cURL 或类似的东西一起使用
- google-cloud-platform - Google Vision OCR,将文字坐标从 90、180、270 个文档旋转到 0 度
- javascript - 对象分配以更新对象的嵌套对象
- python - 我如何将一列值转换为个性化的列标题
- ios - React Native - iOS 模拟器部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 7.0
- java - 如何通过以下方法修复 Stackoverflow?