Как лучше всего определить переменные ENV в приложении на основе стойки?
Я играю с RODA Джереми Эванса https://roda.jeremyevans.net/. Однако у меня возникают проблемы с настройкой переменной среды для моего 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/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 для Test RACK_ENV в моем файле .env.rb, но он недоступен из моей тестовой среды. Как я могу получить переменные env для тестирования env??
1 ответ
Видимо, проблема только в том, что я не загружаю
.env.rb
файл внутри вспомогательного каталога spec. Поэтому для меня решение потребовало
.env.rb
файл в моем
spec_helper.rb
и это сработало.
spec / spec_helper.rb
require_relative '../../.env.rb'