在 Elixir 中是否可以将我的测试模块与他们正在测试的模块放在同一目录中?
一个典型的 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 中是否可以有类似的设置?
好的,为了未来的访客,我会将其作为答案。
混合文档明确说明
从命令行调用
将在与模式mix test
在项目的*_test.exs
目录中找到的每个文件中运行测试。test
看起来
ExUnit
作者强烈反对开发人员将测试放在其他地方。正如 @harryg 发现的那样,这仍然是可能的。 project
设置具有 test_paths
变量 ,用于检查在哪里可以找到测试(以及模式的 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