Ho un'app angularjs con alcune direttive che fanno uso di componenti jquery e bootstrap. Così, al fine di testare le direttive, ho definito il seguente ordine di file in karma.unit.conf.js:Karma Runner> Caricamento bootstrap.js prima che angock-angock-mocks lanci l'eccezione
files = [
JASMINE,
JASMINE_ADAPTER,
'app/components/jquery/jquery.js',
'app/scripts/vendor/bootstrap.js',
'app/components/angular/angular.js',
'app/components/angular-mocks/angular-mocks.js',
'app/components/angular-ui/build/angular-ui.js',
'app/scripts/app.js',
'app/scripts/**/*.js',
'test/spec/unit/**/*.js'
];
Se carico primi angularjs e angolari-schernisce e poi jQuery e bootstrap, il i test vengono eseguiti e falliscono perché angular utilizza la propria jQLite. Ma se cambio l'ordine come ho scritto qui, allora questo è ciò che ottengo:
Edit:
ho scoperto che non è jQuery che cosa sta causando l'eccezione ... è bootstrap.js . Se commento la riga bootstrap.js, i test vengono eseguiti (e non riescono, come previsto perché i componenti bootstrap non sono mai stati caricati). Se carico bootstrap come sopra (o in qualsiasi altro luogo prima delle prove), allora ottengo questo:
PhantomJS 1.8 (Linux) Directive: tkModal should make hidden element visible FAILED[39m
at /home/ir/work/campari/app/components/jquery/jquery.js:1763
at /home/ir/work/campari/app/components/jquery/jquery.js:2833
at /home/ir/work/campari/app/components/jquery/jquery.js:2850
at /home/ir/work/campari/app/components/jquery/jquery.js:2850
at /home/ir/work/campari/app/components/jquery/jquery.js:2850
...
at /home/ir/work/campari/app/components/jquery/jquery.js:2850
at /home/ir/work/campari/app/components/jquery/jquery.js:2850
at /home/ir/work/campari/app/components/jquery/jquery.js:2850
at /home/ir/work/campari/app/components/jquery/jquery.js:3656
at /home/ir/work/campari/app/components/jquery/jquery.js:648
at /home/ir/work/campari/app/components/jquery/jquery.js:270
at /home/ir/work/campari/app/components/jquery/jquery.js:3657
at /home/ir/work/campari/app/components/jquery/jquery.js:3664
at /home/ir/work/campari/app/components/angular-mocks/angular-mocks.js:1589
at /home/ir/work/campari/app/components/angular-mocks/angular-mocks.js:1627
La linea at /home/ir/work/campari/app/components/jquery/jquery.js:2850
ripete all'infinito su un 15k volte prima che il test fallisce (che sembra accadere quando jQuery tentativi per eseguire la funzione internalData su jquery.js: 1763).
Qualsiasi idea sarebbe apprezzato
Edit: risolto
trovato la risposta, è stato un problema bootstrap in versione 2.3.0, l'aggiornamento a 2.3.1 risolto. Vedi https://github.com/twitter/bootstrap/issues/6835
Se hai risposto alla tua domanda, dovresti effettivamente inviarlo come risposta a questa domanda. In questo modo, non verrà visualizzato nella sezione "senza risposta" ;-) –
@TylerEich, in quel momento non ero in grado di postare le risposte, lo aggiungerò ora – rvignacio