2017-01-22 1 views
0

Кажется, что test.secret.exs не загружается автоматически в среде test.Elixir/PhoenixFramework - Как получить test.secret.exs для автоматической загрузки в тестовую среду?

Application.get_env(:my_app, :my_settings) возвращает nil, даже если мой test.secret.exs содержит следующее:

use Mix.Config 

config :my_app, :my_settings, 
    setting1:  "blah", 
    setting2:  "bleh" 

Я бегу Эликсир 1.4.0.

+1

У вас есть 'import_config" test.secret.exs "' в конце 'test.exs', например' prod.exs'? – Dogbert

+0

Должен ли я сделать это, когда в 'config.exs'? 'import_config" # {Mix.env} .exs "' – John

+1

Да, это импортирует 'test.exs'. 'test.exs' должен импортировать' test.secret.exs', как 'prod.exs'. – Dogbert

ответ

1

prod.secret.exs явно загружен prod.exs с этой линией, присутствующий на конце в Фениксе шаблоне приложения по умолчанию:

import_config "prod.secret.exs" 

test.exs не имеет это по умолчанию, так что если вы хотите загрузить test.secret.exs, вы можете добавить следующее в конце test.exs:

import_config "test.secret.exs" 
+1

Еще раз спасибо, Dogbert! Вы спасли день. Ты похож на моего ангела-хранителя эликсира. :) – John

0

В дополнение к ответу Dogbert, за исключением тех, кто хочет DRY решение для загрузки соответствующего *.secret.exs файл для каждой среды, вы можете поместить это в config/config.exs:

import_config "#{Mix.env}.secret.exs" 

С, что там, вы можете удалить вызовы import_config функции из каждой среды конкретного файла конфигурации.

Смежные вопросы