2012-03-09 4 views
6

Sto utilizzando Minitest come runner per i miei test funzionali, utilizzando Selenium come driver per eseguire il browser. Ogni test è modellato come MiniTest :: Unit :: TestCase.Come eseguire l'arresto minitest in caso di errore?

Rapporto di esecuzione dei report più minuti quando termina l'esecuzione di tutti i test. Le eccezioni riscontrate vengono anche stampate verso la fine dell'esecuzione. Trovo difficile eseguire il debug quando qualcosa di inaspettato fallisce quando il contesto di esecuzione viene perso. Le eccezioni che sto incontrando non sono deterministiche.

Esiste un modo per far sì che il conduttore di Minitest interrompa l'esecuzione di test in caso di errore di eccezione o asserzione?

Sto usando Minitest (2.11.2) e Ruby 1.9.2p290 (2011-07-09) [i386-mingw32]

risposta

2

penso che significa avere un "fast fail" opzione disponibile. Ho trovato l'articolo fail_fast for minitest (Test::Unit): Immediate backtrace & exit, ma non è aggiornato (copre ancora cosa si può fare). Penso che dovrai abilitare la monkeypatch della tua libreria di test per abilitare questa opzione. Ho trovato un Gist che mostra come usare add a simple fail-fast option to minitest/turn/minitest-rails in modo che ti possa ottenere sulla strada giusta. Capisco il tuo problema è a che fare con il primo articolo che ho fatto riferimento:

Quando eseguo la suite di Unit Test :: nel mio Ruby on Rails 3 progetto attraverso rake test e un test non riesce, il comportamento predefinito è a solo stampare "F" o "E", continuare a funzionare fino a quando tutti i test sono finiti (mentre io twiddle i miei pollici), e solo allora stampare una traccia dello stack.

-1

provare rails test -f lo farà. Significa interrompere l'esecuzione del test del primo errore o errore se si esegue rails test -h