web-dev-qa-db-fra.com

Soulever pendant le test

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?

51
Dmitry

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
63
Paweł Obrok

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

43
momo