2015-04-16 18 views
47

Sono piuttosto nuovo in Elixir, ma mi diverto molto!Fare leva durante il test

Sono venuto dal mondo Ruby, quindi inizia a guardare l'analogia. E esiste uno strumento di debug pry. Usare binding.pry Posso interrompere qualsiasi sessione. Ho trovato qualcosa di simile in Elixir - IEx.pry. Ma non funziona quando sto testando qualcosa tramite ExUnit.

Domanda: è possibile interrompere la sessione di test ed eseguire iex con l'ambiente corrente?

risposta

56

È necessario iniziare i test all'interno di una sessione iex, è possibile farlo eseguendo iex -S mix test. Quindi è possibile utilizzare IEx.pry all'interno il test:

require IEx 

test "the truth" do 
    one = 1 
    IEx.pry 
    assert one + one == 2 
end 

Ti verrà chiesto se si desidera consentire indiscreti nella sessione:

Request to pry #PID<0.143.0> at test/test_app_test.exs:7. Allow? [Yn] 

E tutto il contesto a quel punto sarà a vostra disposizione :

pry(1)> one 
1 
37

io non ho abbastanza fama di commentare, ma per aggiungere alla risposta di Pawel ..

Se si eseguono i test con --trace, è possibile evitare il timeout del test.

iex -S mix test --trace

+1

Hah, ora fai: P – mraaroncruz

Problemi correlati