Je suis assez nouveau dans Elixir, mais amusez-vous bien avec lui!
Je viens du monde Ruby, alors commencez à chercher l'analogie. Et il existe un outil de débogage pry
. Utiliser binding.pry
Je peux interrompre n'importe quelle session. J'ai trouvé quelque chose de similaire dans Elixir - IEx.pry
. Mais cela ne fonctionne pas lorsque je teste quelque chose via ExUnit
.
Question - est-il possible d'interrompre la session de test et d'exécuter iex avec l'environnement actuel?
Vous devez démarrer vos tests dans une session iex - vous pouvez le faire en exécutant iex -S mix test
. Ensuite, vous pouvez utiliser IEx.pry
dans votre test:
require IEx
test "the truth" do
one = 1
IEx.pry
assert one + one == 2
end
Il vous sera demandé si vous souhaitez autoriser les indiscrets dans la session:
Request to pry #PID<0.143.0> at test/test_app_test.exs:7. Allow? [Yn]
Et tout le contexte à ce stade sera à votre disposition:
pry(1)> one
1
pour ajouter à la réponse de Pawel ..
Si vous exécutez les tests avec --trace, vous pouvez éviter l'expiration du test.
iex -S mix test --trace