Pry while testing

梦想与她 提交于 2019-12-18 12:43:28

问题


I'm pretty new in Elixir, but have a lot fun with it!

I came from Ruby world, so start looking analogy. And there is exist debugging tool pry. Using binding.pry I can interrupt any session. I found something similar in Elixir – IEx.pry. But it doesn't work when I'm testing something through ExUnit.

Question – is it is possible to interrupt testing session and run iex with current environment?


回答1:


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



回答2:


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



来源:https://stackoverflow.com/questions/29671156/pry-while-testing

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!