2013-05-21 19 views
9

Sto utilizzando il modulo Test :: Altro. Se ho un file .t con un sacco di test (principalmente usando ok()); come posso fermare il testcase dopo il primo errore. Quello che sto vedendo adesso è se il primo ok fallisce; i successivi casi ok() sono ancora in esecuzione.Perl Test: Come interrompere il test in un singolo file dopo il primo errore

Ho cercato di utilizzare TEST :: Altro :: Bail_OUT; ma ciò interromperà tutti i test per fermarsi (ovvero gli altri file .t che ho) piuttosto che testare solo per fermarsi per il particolare file.

Grazie!

risposta

8

Chiama done_testing() e exit.

ok(first_test(), 'first test') or done_testing, exit; 
ok(second_test(), 'second test'); 
... 

In altri casi, è possibile utilizzare la funzione skip all'interno di un blocco con un'etichetta SKIP.

SKIP: { 
    ok(first_test) or skip "useless to run the next 4 tests", 4; 
    ok(second_test); 
    ok(third_test); 
    ok(fourth_test); 
    ok(fifth_test); 
} 
ok(sixth_test); 
done_testing(); 

Il vantaggio principale di skip/SKIP è che è supportato nelle versioni precedenti di Test::More.

+0

Il vantaggio principale di 'skip' è che non afferma che solo l'ultimo test sta fallendo. – ikegami

+0

Perché non semplicemente "morire"? – darch

Problemi correlati