用于测试的Phoenix端点服务器将无法启动

Cor*_*win 4 elixir phoenix-framework

我正在使用ex_admin并遇到启动Phoenix服务器的问题.我正在与Hound建立集成测试.ex_admin在测试/支持框架中有一个Phoenix端点.当我将端点服务器的配置设置为true时,我收到一个错误:

    ** (EXIT from #PID<0.70.0>) shutdown: failed to start child: Phoenix.Endpoint.Server
   ** (EXIT) shutdown: failed to start child: {:ranch_listener_sup, TestExAdmin.Endpoint.HTTP}
       ** (EXIT) exited in: :gen_server.call(:ranch_server, {:set_new_listener_opts, TestExAdmin.Endpoint.HTTP, 16384, [env: [dispatch: [{:_, [], [{:_, [], Plug.Adapters.Cowboy.Handler, {TestExAdmin.Endpoint, []}}]}]]]})
           ** (EXIT) no process
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到代码:https://github.com/gwincr11/ex_admin

谢谢你的帮助!

Dog*_*ert 5

该错误意味着Phoenix.Endpoint.Server无法启动,:ranch_listener_sup因为:ranch_server没有运行.这是因为你没有开始cowboy(牧场是牛仔的依赖,并且如果你开始将自动启动cowboy)在你的测试环境中.

要解决此问题,您可以在顶部添加以下内容test/test_helper.exs:

Application.ensure_all_started(:cowboy)
Run Code Online (Sandbox Code Playgroud)

或者将其作为依赖项添加到:testenv中mix.exs:

defp applications(:test) do
  [:plug, :cowboy | applications(:prod)]
end
Run Code Online (Sandbox Code Playgroud)

在进行这些更改之一后,我不再在您的代码库中得到该错误(但我得到了7个测试失败,您可能已添加并且没有机会修复).