在测试时撬

Dmi*_*try 51 testing elixir iex

我是Elixir的新手,但它有很多乐趣!

我来自Ruby世界,所以开始看起来比喻.并且存在调试工具pry.使用binding.pry我可以中断任何会话.我在Elixir找到了类似的东西 - IEx.pry.但是当我通过测试时,它不起作用ExUnit.

问题 - 是否可以中断测试会话并使用当前环境运行iex?

Paw*_*rok 63

您需要在iex会话中开始测试 - 您可以通过运行来完成iex -S mix test.然后你可以IEx.pry在测试中使用:

require IEx

test "the truth" do
  one = 1
  IEx.pry
  assert one + one == 2
end
Run Code Online (Sandbox Code Playgroud)

系统会询问您是否允许窥探会话:

Request to pry #PID<0.143.0> at test/test_app_test.exs:7. Allow? [Yn]
Run Code Online (Sandbox Code Playgroud)

此时的所有背景都可供您使用:

pry(1)> one
1
Run Code Online (Sandbox Code Playgroud)


mom*_*omo 43

我没有足够的声誉来发表评论,但要加入Pawel的回答......

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

iex -S mix test --trace