【问题标题】:How to configure test_pattern for mix test如何为混合测试配置 test_pattern
【发布时间】:2018-08-27 14:08:52
【问题描述】:

我想将test_pattern 更改为mix test,但我无法找出执行此配置的正确方法。我在config/test.exs 中尝试了许多配置变体,但从未弄清楚。最终我发现更改mix.exs(我认为这是最高级别的配置文件)有效:

defmodule Server.Mixfile 做 使用 Mix.Project def 项目做 [ 应用程序::服务器, 版本:“0.0.1”, 长生不老药:“〜> 1.4”, elixirc_paths: elixirc_paths(Mix.env), 编译器:[:phoenix, :gettext] ++ Mix.compilers, start_permanent: Mix.env == :prod, 别名:别名(), 部门:部门(), test_pattern: "*_test.ex", # ----- 这行得通! ] 结尾 # 更多配置内容 结尾

mix test 执行配置的正确方法是什么?

我通过查看this LOC 并试图让我的项目配置符合该检查时遇到了这个黑客。我怀疑有更好的方法来实现我想要的。

这是我的 config/test.exs 文件现在的样子(带有一些 cmets)

使用 Mix.Config # 我们在测试期间不运行服务器。如果需要的话, # 您可以启用下面的服务器选项。 配置:服务器, ServerWeb.Endpoint, 网址:[ 端口:4001 ], 服务器:假 # 仅打印测试期间的警告和错误 配置:记录器,级别::警告 配置:服务器, 服务器.repo, 适配器:Ecto.Adapters.Postgres, 用户名:System.get_env("POSTGRES_USER") || “postgres”, 密码:System.get_env("POSTGRES_PASSWORD") || “postgres”, 数据库:System.get_env("POSTGRES_DB") || “postgres”, 主机名:System.get_env("POSTGRES_HOST") || “本地主机”, 池:Ecto.Adapters.SQL.Sandbox # test_pattern: "*_test.ex" ---- 这不会被拾取 #config :project, ------------- 这抱怨应用程序“项目”不可用 # test_pattern: "*_test.exs?"

【问题讨论】:

    标签: elixir elixir-mix


    【解决方案1】:

    为什么您认为更改 config :server 中的任何内容都会产生副作用? Mix.Config.config/3 是一个简单的宏,它将值存储在配置存储中以供将来使用。它不执行任何代码,也没有任何副作用。

    更重要的是,您尝试放置test_pattern 键的部分是Server.Repo,由Ecto.Repo 读取,后者不知道如何处理test_pattern 键并有效地忽略它。

    作为旁注,我想说的是,将测试模式更改为包含已编译的 *.ex 文件通常听起来不是一个好主意;默认情况下,这些文件将 1) 编译并 2) 包含在发行版中。他们故意有*.exs 扩展名:尾随的“s”代表“脚本”,前提是文件将被视为脚本。

    另外,如果你仍然肯定你想要这个模式,那么通过project 配置来配置它正是它所属的地方。这绝不是 hack,这是改变模式的预期方式。

    【讨论】:

    • 我对 Elixir 还是非常陌生,当我尝试为 config :server 设置配置时,我正在反复试验。我想使用.ex 文件的原因是因为intellij elixir 插件不允许破坏.exs 文件。我对 Elixir 还是很陌生,想在我的测试中设置断点(作为学习过程的一部分)。您对我可以如何调试我的测试有什么建议吗?
    • 我不确定你为什么要调试测试,但我很肯定在学习目的上一切都很好:)
    • 我需要调试我的测试,因为我仍然不确定我编写的 Elixir 代码(即使是用于测试)是否符合我的预期。有一天我不需要调试它们:)
    猜你喜欢
    • 2017-07-21
    • 1970-01-01
    • 2017-02-08
    • 2017-02-06
    • 1970-01-01
    • 2017-02-11
    • 2017-05-10
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多