Pry while testing

to add to Pawel's answer..

If you run the tests with --trace you can avoid the test timing out.

iex -S mix test --trace


You need to start your tests inside an iex session - you can do that by running iex -S mix test. Then you can use IEx.pry inside your test:

require IEx

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

You'll be asked if you want to allow prying into the session:

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

And all the context at that point will be available to you:

pry(1)> one
1