繁体   English   中英

如何在基于 Rack 的应用程序中最好地定义 ENV 变量?

[英]How best can I define ENV Variables in a Rack based app?

我正在使用 Jeremy Evans https://roda.jeremyevans.net/ 的RODA。 但是,我在为 Test_Environment 设置环境变量时遇到问题。

配置/初始化程序/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 的 env 变量?

显然,唯一的问题是我没有在规范帮助程序目录中加载.env.rb文件。 所以为我解决这个问题是在我的spec_helper.rb需要.env.rb文件并且它起作用了。

规格/spec_helper.rb

require_relative '../../.env.rb'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM