几次失败的尝试和这里的文档让我相信我必须在我的 mix 项目中嵌套在模块 (that ) 下test/test_helper.exs
的其他文件中或其中一个文件中定义帮助模块。有没有办法在他们自己的文件中定义这些模块,以便测试可以使用它们,而不会弄乱或将它们放在下面?test/*.exs
use ExUnit.Case
test/test_helper.exs
lib/
问问题
264 次
1 回答
2
在您的mix.exs
文件中,您在项目声明中为不同环境定义不同的路径(在Mix.Project.project/0
回调中,键elixirc_paths
:
defmodule MyApp.MixProject do
use Mix.Project
def project do
[
...
elixirc_paths: elixirc_paths(Mix.env()),
...
]
end
然后为不同的环境提供不同的子句:
defp elixirc_paths(:test), do: ["lib", "test/helpers"]
defp elixirc_paths(_), do: ["lib"]
上面的路径将添加到 Elixir 编译的内容中,并且test/helpers
dir 中的所有代码将在运行时仅在 environment中运行项目时test
可用。
于 2018-12-26T04:38:06.890 回答