混合测试 - 测试模式与任何文件都不匹配
Posted
技术标签:
【中文标题】混合测试 - 测试模式与任何文件都不匹配【英文标题】:Mix Test - Test patterns did not match any file 【发布时间】:2017-02-08 07:54:20 【问题描述】:我为我的 Elixir 项目编写了一些测试并将它们放在 test/
目录中。现在我运行mix test
,我得到:
$ mix test
Test patterns did not match any file:
就是这样,之后就什么都没有了。 我必须手动设置测试路径吗?快速的 Google 搜索没有发现任何内容。
这是我所有测试的样子:
# project_dir/test/my_app/some_module.exs
defmodule MyApp.SomeModule.Test do
use ExUnit.Case
doctest MyApp.SomeModule
test "method 1" do
assert MyApp.SomeModule.method_1_works?
end
test "method 2" do
assert MyApp.SomeModule.method_2_works?
end
end
【问题讨论】:
【参考方案1】:所有测试都应该以_test.exs
结束。将我的测试从 some_module.exs
重命名为 some_module_test.exs
修复了它,现在它可以工作了。
来自$ mix help test
:
此任务启动当前应用程序,加载
test/test_helper.exs
然后需要所有匹配的文件test/**/_test.exs
模式并行。
我仍然想知道是否可以手动配置测试路径(即使最后没有出现“测试”这个词)。
【讨论】:
是的,有可能 - 运行mix help test
并查看块配置。 :test_paths
- 包含测试文件的路径列表,默认为 ["test"]
。预计所有测试路径都包含test_helper.exs
文件。 :test_pattern
- 加载测试文件的模式,默认为 *_test.exs
。
您是否有理由要更改测试路径而不是使用默认路径?运行mix new
应该会给你一个很好的脚手架。除非有令人信服的理由让您的文件不以 *_test.exs 结尾,否则我认为最好保留默认值。保持惯用语和所有这些以上是关于混合测试 - 测试模式与任何文件都不匹配的主要内容,如果未能解决你的问题,请参考以下文章
git commit 错误:pathspec 'commit' 与 git 已知的任何文件都不匹配