Elixir 应用测试配置

nos*_*ame 2 elixir

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

配置文件

config :exredis,
  url: System.get_env("REDIS_URL") || "redis://redis:6379/0",
Run Code Online (Sandbox Code Playgroud)

测试文件

config :exredis,
  url: "redis://redis:6379/1"
Run Code Online (Sandbox Code Playgroud)

当我使用控制台从控制台运行测试时

mix test test/my_test.ex
Run Code Online (Sandbox Code Playgroud)

使用 redis 的生产实例而不是测试实例。

我可以通过运行让它工作

REDIS_URL="redis://redis:6379/1" mix test test/my_test.exs
Run Code Online (Sandbox Code Playgroud)

但是如何强制它自动使用测试配置?

我使用mix test test/my_test.exs.

Dog*_*ert 7

如评论中所述,您已在下面添加了该代码import_config "#{Mix.env}.exs"

import_config "#{Mix.env}.exs"必须保持在底部config.exs,否则test.exs不能覆盖任何配置设置config.exs,因为它会被后置的配置之前评估import_config "#{Mix.env}.exs"