一个典型的 Elixir 项目具有如下结构:
project
|-- lib
| `-- my_module.ex
`-- test
|-- my_module_test.exs
`-- test_helper.exs
Run Code Online (Sandbox Code Playgroud)
在编写节点项目时,我喜欢将我的测试模块放在他们正在测试的模块旁边。这可以使用 Jest 等工具轻松配置:
project
|-- lib
| |-- my_module.ex
| `-- my_module.test.exs
`-- test
`-- test_helper.exs
Run Code Online (Sandbox Code Playgroud)
是否可以在 Elixir/Exunit 中进行类似的设置?
好的,为了以后的访问者,我将其作为答案。
混合文档明确说明
从命令行调用
mix test将*_test.exs在与test项目目录中找到的模式匹配的每个文件中运行测试。
看起来ExUnit作者强烈反对开发人员将测试放在其他地方。正如@harryg 发现的那样,尽管如此,这仍然是可能的。project设置有tests_path变量,该变量被检查在哪里可以找到测试(和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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |