1

Python の setup.py では、要件の下で指定することにより、ダウンロードして卵としてインストールする必要がある依存関係を指定できますtest_requires。Elixir の mix では、テストにのみ使用したい依存関係をどのように指定すればよいですか?

4

1 に答える 1

6

Mix の依存関係はdeps、 と呼ばれるプライベート関数内に配置されます。これはルールではなく、「セクション」のdepsエントリのデフォルト値にすぎませんproject。以下を参照してください。

def project do
 [ app: :teste,
    version: "0.0.1",
    elixir: "~> 0.12.5-dev",
    deps: deps ] # It's here!
end

depsテストの依存関係の関数を宣言し、deps上記のエントリを に設定できdeps(Mix.env)ます。これは、Mix に環境変数depsからのパラメーターで呼び出すように指示する方法です。MIX_ENV

このスニペットは、理解を深めるのに役立ちます。お見せしましょう。

...

def project do
  [ app: :teste,
    version: "0.0.1",
    elixir: "~> 0.12.5-dev",
    deps: deps(Mix.env) ] # This is important :)
end

...

defp deps(:prod) do
   [ { :a_production_ready_dependency, github: "xpto/cool_project" } ] 
end

defp deps(:test) do
   [ { :some_project, github: "some_project/other" } ]
end

defp deps(_) do
   deps(:prod) ++ [ { :a_devel_dependency, github: "xpto_dev/cool_project_dev" } ]
end

...

defp deps(_)上記の関数のいずれもパターン一致しなかった場合でも、 を使用してデフォルトの依存関係リストを使用できることに注意してください。;)

次に、次のように呼び出す必要がありますmix

MIX_ENV=test mix deps.get

これは最善の方法とは言えませんが、私は頻繁に使用しており、単純に思えます。

于 2014-03-16T02:00:55.960 に答える