如何最好地在基于机架的应用程序中定义 ENV 变量?
How best can I define ENV Variables in a Rack based app?
我正在玩 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/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 变量,但无法从我的测试环境访问它。 如何获取可用于测试环境的环境变量??
显然,唯一的问题是我没有在 spec helper 目录中加载 .env.rb
文件。所以为我解决它是在我的 spec_helper.rb
中要求 .env.rb
文件并且它有效。
spec/spec_helper.rb
require_relative '../../.env.rb'
我正在玩 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/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 变量,但无法从我的测试环境访问它。 如何获取可用于测试环境的环境变量??
显然,唯一的问题是我没有在 spec helper 目录中加载 .env.rb
文件。所以为我解决它是在我的 spec_helper.rb
中要求 .env.rb
文件并且它有效。
spec/spec_helper.rb
require_relative '../../.env.rb'