2013-02-04 6 views
9

Voglio che il corridore si fermi dopo il primo errore invece di eseguire tutti i test.Come posso far arrestare jasmine.js dopo un errore di test?

+5

Cosa rende questa "non una domanda reale"? –

+0

C'è un problema aperto per questo qui https://github.com/jasmine/jasmine/issues/414. L'autore ha scritto un plugin https://github.com/goodeggs/jasmine-bail-fast. In modo imprevisto 'this.results()' non esiste per me nei miei test di unità AngularJS (eseguiti da karma). –

risposta

5

È un trucco, ma è possibile farlo inserendo questo script prima del primo test;

<script type="text/javascript"> 
// after every test has run 
afterEach(function() { 
    // check if any have failed 
    if(this.results_.failedCount > 0) { 
    // if so, change the function which should move to the next test 
    jasmine.Queue.prototype.next_ = function() { 
     // to instead skip to the end 
     this.onComplete(); 
    } 
    } 
}); 
</script> 

Jasmine di ultima commit al momento di applicare questo era https://github.com/pivotal/jasmine/commit/8b02bf731b193e135ccb486e99b3ecd7165bf95c

+0

'console.log (this.results_)' stampa "indefinito" –

+0

Sì, Jasmine v2 è uscito da quando è stato pubblicato nel 2013 –

+0

Forse rimuovere il voto negativo? –

0

Questa è una richiesta di funzionalità molto popolare per il progetto di gelsomino: https://github.com/jasmine/jasmine/issues/414

Sembra che ci sia interesse per la sua attuazione, ma è stato aperto anche per un tempo molto lungo, quindi chissà quando potrebbe essere rilasciato. In alternativa, Mocha implementa questa funzionalità con l'opzione -b/- bail: https://mochajs.org/#usage. La sua api è molto simile a quella di Jasmine, quindi potresti prendere in considerazione l'idea di fare il passaggio.