[英]Is there something like test_requires in Elixir's mix?
在Python的setup.py中,我們可以通過在test_requires
下指定要求來指定應下載並以雞蛋形式安裝的依賴項。 在Elixir的混合中,如何指定僅用於測試的依賴項?
Mix中的依賴項放置在名為deps
的私有函數中,這不是規則,它只是project
“部分”中deps
條目的默認值,請參見下文:
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使用來自MIX_ENV
環境變量的參數調用deps
的方法。
該代碼段可以幫助您更好地理解,讓我向您展示:
...
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
這可能不是最好的方法,但是我經常使用它,對我來說聽起來很簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.