2015-05-05 11 views
12

annulla l'ultimo commento. Si scatena l'inferno ... perché?jasmine dovrebbe eseguire le specifiche nell'ordine in cui sono dichiarate o in un ordine casuale?

describe('test', function() { 
    var index = 1; 

    it('test 1', function() { 
    expect(index).toBe(1); 
    index++; 
    }); 

    it('test 2', function() { 
    expect(index).toBe(2); 
    index++; 
    }); 

    it('test 3', function() { 
    expect(index).toBe(3); 
    index++; 
    }); 

    it('test 4', function() { 
    expect(index).toBe(4); 
    index++; 
    }); 

    it('test 5', function() { 
    expect(index).toBe(5); 
    index++; 
    }); 

    it('test 6', function() { 
    expect(index).toBe(6); 
    index++; 
    }); 

    it('test 7', function() { 
    expect(index).toBe(7); 
    index++; 
    }); 

    it('test 8', function() { 
    expect(index).toBe(8); 
    index++; 
    }); 

    it('test 9', function() { 
    expect(index).toBe(9); 
    index++; 
    }); 

    it('test 10', function() { 
    expect(index).toBe(10); 
    index++; 
    }); 

    // it('test 11', function() { 
    // expect(index).toBe(11); 
    // index++; 
    // }); 

}); 

grazie a @PWKad per indicare che questo accade quando ci sono più di 10 test.

+1

è sempre correvano nell'ordine dichiarato per me. Il mio unico suggerimento è quello di ridurre la vera suite al minimo che mostra il problema e postare quel codice nella domanda. –

+2

Non ho una grande esperienza con il gelsomino, ma con i test unitari in generale, non dovresti aspettarti che vengano eseguiti in un ordine particolare - sono dopotutto test di unità. Se un determinato test richiede determinate condizioni, ciò dovrebbe essere nel set up/down di quel test. –

+0

@JamesThorpe il problema è che la funzionalità sottoposta a test è stateful e ha un'API asincrona. Se non posso dipendere dall'ordine in cui vengono eseguite le specifiche, finirò con una specifica profondamente annidata, che è brutta e non riflette le parti dell'API che vengono testate. Posso conviverci se qualcuno sa con certezza quale sia il comportamento "previsto" del gelsomino. Fino ad ora ho avuto la stessa esperienza di Michal Charemza. –

risposta

10

Sì, Jasmine esegue le specifiche (esso) nell'ordine. C'è stato un problema dalla 2.3.0 alla 2.3.3 con più di 10 specifiche. Ho riscontrato lo stesso problema in 2.3.3, il problema è stato risolto in 2.3.4.

https://github.com/jasmine/jasmine/issues/850

ho appena usato 2.3.4 al posto di 2.3.3 e le mie 15 test finalmente superato.

4

Attualmente (v2.x) Jasmine esegue i test nell'ordine in cui sono definiti. Tuttavia, esiste una nuova opzione (ottobre 2015) per eseguire le specifiche in ordine casuale, che è ancora disattivato per impostazione predefinita. Secondo il proprietario del progetto, in Jasmine 3.x verrà convertito in default.

Riferimenti:

+0

ottime informazioni- grazie! –

Problemi correlati