【问题标题】:Elixir app test configurationElixir 应用测试配置
【发布时间】:2017-06-30 19:59:52
【问题描述】:

我有一个使用 redis 进行数据存储的 phoenix web 应用程序。我的配置文件夹包含以下文件:

config.exs

config :exredis,
  url: System.get_env("REDIS_URL") || "redis://redis:6379/0",

test.exs

config :exredis,
  url: "redis://redis:6379/1"

当我使用

从控制台运行测试时
mix test test/my_test.ex

使用redis的生产实例代替测试实例。

我可以通过运行使其工作

REDIS_URL="redis://redis:6379/1" mix test test/my_test.exs

但是我怎样才能强制它自动使用测试配置呢?

我使用mix test test/my_test.exs 从控制台运行测试。

【问题讨论】:

  • 您是否在config.exs:import_config "#{Mix.env}.exs" 的这一行上方添加了该代码?否则test.exs 将无法覆盖它。
  • 就是这样! import_config "#{Mix.env}.exs" 不在config.exs 的底部。把它移到那里解决了问题,谢谢。

标签: elixir


【解决方案1】:

正如 cmets 中所阐明的,您已在 import_config "#{Mix.env}.exs" 下方添加了该代码。

import_config "#{Mix.env}.exs" 必须保留在config.exs 的底部,否则test.exs 无法覆盖config.exs 中设置的任何配置,因为它将在import_config "#{Mix.env}.exs" 之后设置的配置之前进行评估。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多