在 Elixir 中,将测试文件与相关模块放在一起
In Elixir, placing test files alongside their related modules
典型的 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 中进行类似设置?
好的,为了以后的访问者,我把它作为答案。
Invoking mix test
from the command line will run the tests in each file matching the pattern *_test.exs
found in the test
directory of your project.
看起来 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
典型的 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 中进行类似设置?
好的,为了以后的访问者,我把它作为答案。
Invoking
mix test
from the command line will run the tests in each file matching the pattern*_test.exs
found in thetest
directory of your project.
看起来 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