几次尝试失败,文档here使我相信必须在test/test_helper.exs
或嵌套在模块下的其他test/*.exs
文件之一中定义帮助程序模块(我的混合项目中的use ExUnit.Case
)。有没有一种方法可以在自己的文件中定义这些模块,以便测试可以使用它们而不会弄乱test/test_helper.exs
或将它们置于lib/
下?
答案 0 :(得分:1)
在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"]
仅在test/helpers
环境中运行项目时,以上路径将添加到Elixir编译的内容中,并且test
dir中的所有代码将在运行时中可用。