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