混合测试 - 测试模式与任何文件都不匹配

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 结尾,否则我认为最好保留默认值。保持惯用语和所有这些

以上是关于混合测试 - 测试模式与任何文件都不匹配的主要内容,如果未能解决你的问题,请参考以下文章

测试 glob 在 Bash 中是不是有任何匹配项

git commit 错误:pathspec 'commit' 与 git 已知的任何文件都不匹配

代码签名错误:身份“iPhone 开发人员:x Xxxxx”与任何配置文件中的任何身份都不匹配

怎么办 正则表达式模式在字符串中的任何地方都不匹配?

选择器“new-selector”与任何元素都不匹配

如何将 testthat 测试应用于我的包中与特定命名模式匹配的所有函数?