Ho usato qunit per scrivere una serie di test per il codice javascript che ho. In questo momento, per qualche motivo, verrà eseguito il primo test della mia lista, quindi verrà eseguito l'ULTIMO test nell'elenco, seguito dal penultimo, dal terzo all'ultimo, dal quarto all'ultimo, ecc ... È fondamentale per i miei test che le cose corrono nell'ordine in cui le ho inserite. Ho provato a disattivare quell'opzione in cui qunit esegue test che hanno fallito l'ultima volta, ma lo fa ancora. C'è un modo per risolvere questo problema?Ottenere QUnit per eseguire i test nell'ordine
risposta
In primo luogo, capire perché i test devono essere eseguiti in un ordine specifico. L'intero punto di test unitario è che i test sono atomici e dovrebbe essere possibile eseguirli in qualsiasi ordine - se la tua suite di test non è in grado di farlo, è necessario capire perché, poiché potrebbe rappresentare un problema più grande.
Se non riesci a capirlo, potrebbe essere necessario suddividere la suite di test in gruppi più piccoli di test fino a trovare quelli che causano il problema.
modifica: trovato questo riferimento allo http://www.educatedguesswork.org/2011/06/curse_you_qunit_1.html. Apparentemente, aggiungere questo alla tua suite di test aiuterà QUnit.config.reorder = false;
Forse potresti prendere in considerazione l'inserimento del codice che esegue ogni calcolo principale in una funzione che ha un test all'inizio che controlla se il calcolo è già stato eseguito. Se il calcolo non viene eseguito, esegui il calcolo e salva il risultato da qualche parte. Se il calcolo è già stato fatto, è sufficiente restituire i risultati. In questo modo è possibile avere un singolo calcolo per tutti i test, ma essere ancora autonomi rispetto all'ordine in cui vengono eseguiti i test.
Posso riferire ai problemi dei calcoli che richiedono molto tempo nei test di unità, ma è fondamentale per il gruppo di prova essere in grado di eseguire qualsiasi test di unità ed eseguirlo come test indipendente autonomo. Questo è particolarmente vero quando si presenta un problema critico che deve essere affrontato in modo specifico.
- 1. QUnit non eseguirà i test
- 2. Come eseguire i test QUnit dalla riga di comando?
- 3. Come integrare i test QUnit in Yii
- 4. QUnit con Ajax, QUnit supera i test falliti
- 5. Come eseguire il test QUnit e ottenere il risultato del test in C# tramite callback JavaScript?
- 6. EmberJS Servizio iniezione per i test unitari (Ember QUnit)
- 7. Saltare un test in Qunit
- 8. Test parametrizzati Qunit e derisione
- 9. Come si costruisce una suite di test Qunit che hanno tutti i propri dispositivi qunit?
- 10. QUnit esegue solo il primo test
- 11. grunt non esegue test QUnit su phantom
- 12. Test dell'unità Domande AJAX con QUnit
- 13. Uso di Grunt.js per eseguire i test della moka
- 14. Impostazione PhantomJS viewportSize in QUnit test
- 15. Come ottenere QUnit per stampare il backtrace sull'eccezione?
- 16. Impossibile eseguire "Avvio test" per i test interni con Testflight
- 17. Come eseguire il test delle rotte nell'app di ember-cli usando qunit?
- 18. Esecuzione di test QUnit con Jenkins e Apache Ant?
- 19. Come ottenere TeamCity per eseguire test utilizzando MSTest?
- 20. Selezionare l'elenco per i moduli QUnit nella barra del test runner?
- 21. Karma vs framework di test Jasmine, Mocha, QUnit
- 22. Autostart QUnit
- 23. Come possiamo eseguire i test unitari contro la manipolazione DOM?
- 24. Ottenere karma grunt per eseguire un test di unità
- 25. Come ottenere Karma per eseguire questi file di test?
- 26. Meteor con QUnit
- 27. Errore Qunit: asserzione al di fuori del contesto di test
- 28. Eseguire i test della moka nell'ambiente di test?
- 29. Come creare test QUnit con riferimento ad un'altra classe?
- 30. Specificare modulo QUnit quando corro con Grunt
No, so perché. Per aumentare l'efficienza (Non voglio entrare nei dettagli, ma al momento ogni test richiede molto tempo per essere eseguito e ho bisogno di rendere le cose il più snelle possibili). Alcuni test si basano sui risultati di un test precedente. Posso rendere tutto atomico ma poi tutto richiede ancora più tempo di quello che già fa. Una volta che sono messo in una posizione in cui il tempo non conta, posso tornare a un modello atomico, ma per ora voglio che i miei test vengano eseguiti nell'ordine in cui li ho scritti per efficienza. – user1028497
@ user1028497 "Alcuni test si basano sui risultati di un test precedente", quindi non si dispone di atomicità: è necessario preparare ciò che è necessario per il test nel test stesso. – unludo
Lo stavo facendo sì. Ma in questo momento ho bisogno di efficienza, e questo era il modo migliore di fare le cose. Non voglio spiegare tutto, ma basti dire che in questo momento ho bisogno di test da eseguire nell'ordine in cui li ho inseriti. – user1028497