是否需要在测试服上手动启动 OTP 应用程序

Is starting OTP application manually required on test suit

我使用,例如,HTTPotion

mix.exs中是这样列出的:

  def application do
    [ applications: [:httpotion]
  end

我需要在 test_helper 或设置宏中提供 HTTPotion.start() 吗?

有时我的测试会失败,因为 HTTPotion 没有启动,所以我在 helper.xml 中添加了这一行。然而,过一段时间它又会失败,所以我需要删除它,编译,然后再次添加,再次编译,它又可以工作了。

我不明白问题出在这个领域还是其他领域。

简短回答:不,你不知道。

当你想在 iex 中 运行 HTTPotion 时,每次之前你都必须使用这句话 HTTPotion.start,但这就是使用 mix 的全部意义 - 它会为你处理启动应用程序背景。

请阅读this注释,尤其是句子:

Mix normally starts the whole hierarchy of applications defined in our project’s mix.exs file and it does the same for all dependencies if they depend on other applications.

.