2017-03-16 6 views
0

特定の環境でのみ実行時にアプリケーションをロードするように設定するにはどうすればよいですか? 私は、テスト環境だけに依存関係を設定できることを知っています。
mix.exsのアプリケーションをテスト環境でのみロードする方法はありますか?たとえば
テスト環境でのみロードするようにアプリケーションを設定する

def application do 
    [mod: {MyApp, []}, 
    applications: [:phoenix]] end 

    defp deps do 
    [{:phoenix, "~> 1.2.1"}] end 

は、私が唯一のテスト環境用の鳳凰アプリケーションを設定することはできますか?

+2

使用エリキシル1.4。それには[アプリケーション推論](https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#application-inference)があります。依存関係に基づいてアプリケーションをロードするだけです。それが言われると、あなたのミックスファイルはちょうどエリクシールコードです。そこにifを投げたり、独自の方法などを書き込んでも構いません。 'Mix.env/1'を使って、あなたがどの環境にいるのか知ることができます。 –

答えて

2

@JustinWoodがコメントで述べたように、エリクサー1.4を使用している場合はapplication inferenceを使用して自動的にこれを行うことができます。

あなたは1.4前に万能薬のバージョンを使用する必要がある場合は、これを行う方法は、あなたのmix.exsに次のようなものを持っているだろう:

def application do 
    [ 
    mod: {MyApp, []}, 
    applications: applications(Mix.env) 
    ] 
end 

defp applications(:test), do: applications(:default) ++ [:test_only_app_1, :test_only_app_2] 
defp applications(_),  do: [:logger, :httpoison] 
関連する問題