Как лучше всего определить переменные 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'
Другие вопросы по тегам