Elixir:从依赖访问测试助手

时间:2017-08-17 13:19:15

标签: testing elixir

在java世界中,特定库的工件通常有两种形式,一种带有测试助手,另一种没有测试助手。在Elixir世界中是否存在等价物?

具体来说,我希望能够在应用程序A中公开模拟或数据生成器。应用程序B现在取决于A,并且能够在自己的测试中使用来自A的公开帮助程序。现在,我不希望这些帮助者出现在生产中的任何地方,因此只有在特别要求时才应包含这些帮助(例如,通过MIX_ENV=test)。

编辑:基本上,问题归结为:"如何根据A的{​​{1}}进行测试?"

1 个答案:

答案 0 :(得分:0)

前段时间,我找到了一个可行的解决方案:我专门针对elixirc_paths环境扩展了:test并将共享的帮助程序放入了应用程序内的另一个目录(例如test/support)。在mix.exs中:

def project do
  [
  # ...
  elixirc_paths: elixirc_paths(Mix.env),
  ]
end

defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]

然后,依赖的应用程序在测试环境中编译应用程序时可以使用test/support中的模块。