2017-11-13 7 views
2

webapp를 IEx로 디버깅 할 수 있지만 테스트 내에 중단 점을 설정할 수 있습니까?IEx로 phoenix 테스트 디버그

예를 들어 다음 테스트에서 conn 내부에있는 내용을 확인하거나 다른 변수 나 매크로를 확인하고 싶습니다.

Cannot pry #PID<0.406.0> at ... Is an IEx shell running? 

답변

4
: 그것과 불평 그래서 iex -S mix phoenix.server

으로하지만,이 경우 실행이 phoenix.server이 있어야 웹 애플리케이션과 함께 작동하도록하기 위해

defmodule HelloWeb.PageControllerTest do 
    use HelloWeb.ConnCase 
    require IEx 
    test "GET /", %{conn: conn} do 
    IEx.pry 
    conn = get conn, "/" 
    assert html_response(conn, 200) =~ "Welcome to Phoenix!" 
    end 
end 

은 테스트하지 웹 애플리케이션이다

conn 구조체 (또는 다른 변수) 내부에있는 내용을 확인하려면 IO.inspect conn을 사용하고 평소와 같이 mix test과 같이 테스트를 수행하면됩니다. 여기서는 신경 쓸 필요가 없습니다. 예를 들어 :

defmodule HelloWeb.PageControllerTest do 
    use HelloWeb.ConnCase 
    test "GET /", %{conn: conn} do 
    IO.inspect conn 
    conn = get conn, "/" 
    assert html_response(conn, 200) =~ "Welcome to Phoenix!" 
    end 
end 

그러나, 당신이 정말로 쉘을 필요로하는 경우에는 다음과 같이 호출 할 수 있습니다

iex -S mix test 
2

ExUnit 테스트는 해석 코드가 작성된 의미 .exs 파일에 있습니다. 따라서 브레이크 포인트를 설정할 수 없습니다.

.exs 및 .ex 파일에 대한 자세한 내용. 당신은 단순히

IO.inspect conn 

를 작성하고 간단한 변수에 대해 당신이 쓸 수있는지도를 확인하려면 Elixir: When to use .ex and when .exs files

를 참조

IO.puts variable_name