web-dev-qa-db-ja.com

テスト中にこじ開ける

私はエリクサーでかなり新しいですが、それをたくさん楽しんでいます!

私はRuby世界から来たので、類推を開始します。そして、デバッグツールpryが存在します。binding.pryを使用すると、どのセッションにも割り込むことができます。 Elixir – IEx.pry。しかし、ExUnitを使用して何かをテストしているときは機能しません。

質問–テストセッションを中断して、現在の環境でiexを実行することは可能ですか?

51
Dmitry

Iexセッション内でテストを開始する必要があります-iex -S mix test。次に、IEx.pryテスト内:

require IEx

test "the truth" do
  one = 1
  IEx.pry
  assert one + one == 2
end

セッションへの侵入を許可するかどうかを尋ねられます。

Request to pry #PID<0.143.0> at test/test_app_test.exs:7. Allow? [Yn]

その時点でのすべてのコンテキストが利用可能になります:

pry(1)> one
1
63
Paweł Obrok

パヴェルの答えに追加します。

--traceを使用してテストを実行すると、テストのタイムアウトを回避できます。

iex -S mix test --trace

43
momo