56

我是 Elixir 的新手,但玩得很开心!

我来自 Ruby 世界,所以开始寻找类比。并且存在调试工具pry。使用binding.pryI 可以中断任何会话。我在 Elixir 中发现了类似的东西 - IEx.pry。但是当我通过ExUnit.

问题 – 是否可以中断测试会话并在当前环境下运行 iex?

4

2 回答 2

71

您需要在 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
于 2015-04-16T10:57:40.277 回答
48

添加到 Pawel 的答案..

如果您使用 --trace 运行测试,您可以避免测试超时。

iex -S mix test --trace

于 2016-01-18T21:00:41.747 回答