典型的Elixir项目的结构如下:
project
|-- lib
| `-- my_module.ex
`-- test
|-- my_module_test.exs
`-- test_helper.exs
在编写节点项目时,我希望将测试模块放在要测试的模块旁边。可以使用Jest这样的工具轻松配置:
project
|-- lib
| |-- my_module.ex
| `-- my_module.test.exs
`-- test
`-- test_helper.exs
是否可以在Elixir / Exunit中进行类似的设置?
答案 0 :(得分:2)
好的,为了将来的访问者,我将其作为答案。
从命令行调用
mix test
将在与项目*_test.exs
目录中找到的模式test
相匹配的每个文件中运行测试。
似乎ExUnit
的作者强烈劝阻开发人员将测试放在其他地方。正如@harryg发现的那样,它仍然是可能的。 project
设置具有tests_path
变量that is checked for where tests are to be found(模式为test_pattern
),默认为"test"
,
分别"*_test.exs"
。
要将其重置为其他值,只需更新project
回调,添加以下两行即可:
def project do
[
app: @app,
version: @version,
elixir: "~> 1.6",
start_permanent: Mix.env() == :prod,
...
test_paths: ".",
test_pattern: "*_test.exs" # or something else
]
end