2016-11-27 65 views
3

我正在使用ex_admin並遇到啓動Phoenix服務器的問題。我正在與獵犬合作開展集成測試。 ex_admin在測試/支持框架中有一個Phoenix端點。當我設置的配置端點服務器真的,我得到一個錯誤:用於測試的Phoenix端點服務器無法啓動

** (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 

你可以看到這裏的代碼:https://github.com/gwincr11/ex_admin

感謝您的幫助!

回答

4

錯誤表示Phoenix.Endpoint.Server未能啓動:ranch_listener_sup,因爲:ranch_server未運行。這是因爲你在測試環境中沒有啓動cowboy(牧場是牛仔的依賴項,如果你開始cowboy,它會自動啓動)。

爲了解決這個問題,你可以添加以下的test/test_helper.exs頂部:

Application.ensure_all_started(:cowboy) 

或者它在mix.exs添加爲一個依賴於:test ENV:

defp applications(:test) do 
    [:plug, :cowboy | applications(:prod)] 
end 

使得任何一個後在這些變化中,我不再在代碼庫中遇到這種錯誤(但是我得到了可能添加的7個測試失敗,並且沒有機會修復)。

+0

就是這樣,非常感謝。如果錯誤實際上告訴你什麼應用程序未啓動,那將會很好。我認爲開始牛仔會由鳳凰城處理。我得到了所有失敗的測試通過,我試圖通過各種配置來啓動影響測試的服務器。 –

+0

您是否知道,我是否有辦法在測試支持文件夾中啓動Phoenix端點和服務器,以便在本地計算機上訪問? –

相關問題