问题描述
我在Elixir领域还很新,但是玩得很开心!
I'm pretty new in Elixir, but have a lot fun with it!
我来自Ruby世界,因此开始进行类比。并且存在调试工具 pry
。使用 binding.pry
我可以中断任何会话。我在Elixir中发现了类似的内容– IEx.pry
。但是当我通过 ExUnit
测试某些东西时,它不起作用。
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
.
问题–是否可以中断测试会话并在当前环境下运行iex?
Question – is it is possible to interrupt testing session and run iex with current environment?
推荐答案
您需要在iex会话中开始测试-您可以通过运行 iex -S混合测试
来进行测试。然后,可以在测试中使用 IEx.pry
:
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
这篇关于测试时撬的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!