Привлекать при тестировании
Я новичок в Elixir, но мне очень понравилось!
Я пришел из мира Ruby, поэтому начните искать аналогию. И существует инструмент отладки pry
. Используя binding.pry
, я могу прервать любой сеанс. Я нашел нечто подобное в Эликсире - IEx.pry
. Но это не работает, когда я тестирую что-то через ExUnit
.
Вопрос - можно ли прерывать тестовый сеанс и запускать iex с текущей средой?
Ответы
Ответ 1
Вам нужно запустить тесты внутри сеанса 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
Ответ 2
добавить в Pawel ответ..
Если вы запускаете тесты с --trace, вы можете избежать тайм-аута теста.
iex -S mix test --trace