2016-11-27 2 views
3

저는 ex_admin에서 작업 중이며 Phoenix 서버를 시작하는 중에 문제가 발생했습니다. 나는 Hound와의 통합 테스트를 설정하고 있습니다. ex_admin은 테스트/지원 프레임 워크에 Phoenix 엔드 포인트를 가지고 있습니다. 어떤 도움 https://github.com/gwincr11/ex_admin테스트를위한 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 

: 나는 참으로 엔드 포인트 서버에 대한 설정을 설정하면 오류가 발생합니다!

답변

4

오류는 :ranch_server이 실행 중이 아니기 때문에 Phoenix.Endpoint.Server:ranch_listener_sup을 시작하지 못했음을 의미합니다. 이것은 cowboy (목장은 카우보이의 의존성이며 시작하면 자동으로 시작됩니다 cowboy) 테스트 env에서 시작하지 않기 때문입니다.

이 문제를 해결하려면, 당신은 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 끝점과 서버를 시작할 수있는 방법이 있습니까? –

관련 문제