2013-03-30 16 views
11

Sto usando QUnit per testare il mio JavaScript. Sto anche usando requirejs. Ho codice di prova che assomiglia a questo:Autostart QUnit

QUnit.config.autostart = false; 

require(['tests/tests'], function() { 
    QUnit.start(); //Tests loaded, run tests 
}); 

Questa grande opera in FF (19.0.2 come accade), ma in entrambi Chrome (27) e IE (10), sto ottenendo un errore di QUnit:

"pushFailure() affermazione fuori contesto test"

Risulta che non ho bisogno la chiamata a QUnit.start in IE e Chrome. Qualcun altro ha visto questo o ha qualche suggerimento sul perché?

risposta

13

Se qualcun altro ha riscontrato questo problema, ho trovato una soluzione. Empiricamente sia Chrome che IE attivano l'evento di caricamento di QUnit non appena si accede a QUnit e si caricano le chiamate. Quello che ho fatto è questo:

<script type="text/javascript" src="qunit-1.11.0.js"></script> 
<script type="text/javascript"> 
    QUnit.config.autostart = false; 
</script> 
    <script type="text/javascript" data-main="main" src="require.js"></script> 

Quindi, carico QUnit, impostare l'avvio automatico e quindi il carico requirejs

Questo è Messier che impostare autostart = false in main.js ma ha il vantaggio di lavorare :)

+0

Anche questa sembra essere una buona soluzione: http://stackoverflow.com/questions/15921707/qunit-unit-test-error-on-jquery-ajax –