将应用程序配置为仅在测试环境中加载
Configure applications to be loaded only in test environment
如何将应用程序配置为在特定环境中仅在 运行 时间内加载?
我知道我只能为测试环境配置一个依赖。
有没有办法将 mix.exs
中的应用程序配置为仅在测试环境中加载?
例如:
def application do
[mod: {MyApp, []},
applications: [:phoenix]] end
defp deps do
[{:phoenix, "~> 1.2.1"}] end
我可以只为测试环境配置phoenix应用程序吗?
正如@JustinWood 在评论中所述,如果您使用的是 elixir 1.4,则可以使用 application inference 自动为您执行此操作。
如果您必须使用 1.4 之前的 elixir 版本,方法是在您的 mix.exs
:
中添加类似于以下内容的内容
def application do
[
mod: {MyApp, []},
applications: applications(Mix.env)
]
end
defp applications(:test), do: applications(:default) ++ [:test_only_app_1, :test_only_app_2]
defp applications(_), do: [:logger, :httpoison]
如何将应用程序配置为在特定环境中仅在 运行 时间内加载?
我知道我只能为测试环境配置一个依赖。
有没有办法将 mix.exs
中的应用程序配置为仅在测试环境中加载?
例如:
def application do
[mod: {MyApp, []},
applications: [:phoenix]] end
defp deps do
[{:phoenix, "~> 1.2.1"}] end
我可以只为测试环境配置phoenix应用程序吗?
正如@JustinWood 在评论中所述,如果您使用的是 elixir 1.4,则可以使用 application inference 自动为您执行此操作。
如果您必须使用 1.4 之前的 elixir 版本,方法是在您的 mix.exs
:
def application do
[
mod: {MyApp, []},
applications: applications(Mix.env)
]
end
defp applications(:test), do: applications(:default) ++ [:test_only_app_1, :test_only_app_2]
defp applications(_), do: [:logger, :httpoison]