5

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

+0

Se hai risposto alla tua domanda, dovresti effettivamente inviarlo come risposta a questa domanda. In questo modo, non verrà visualizzato nella sezione "senza risposta" ;-) –

+0

@TylerEich, in quel momento non ero in grado di postare le risposte, lo aggiungerò ora – rvignacio

risposta