5

Ich habe eine angularjs App mit einigen Direktiven, die jquery und Bootstrap-Komponenten verwenden. Also, um die Richtlinien zu testen, habe ich die folgende Reihenfolge der Dateien in karma.unit.conf.js definiert:Karma Runner> Laden bootstrap.js vor angular und angular-mocks wirft Ausnahme

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' 

]; 

Wenn ich zum ersten Mal AngularJS und Winkel Mocks laden und dann jquery und Bootstrap, die Tests laufen und scheitern, weil angular eine eigene jQLite verwendet. Aber wenn ich die Reihenfolge ändern, wie ich schrieb hier oben, dann ist dies, was ich bekommen:

Edit:

Ich habe festgestellt, dass es nicht jQuery ist das, was die Ausnahme verursacht ... es ist bootstrap.js . Wenn ich die Zeile bootstrap.js kommentiere, werden die Tests ausgeführt (und fehlschlagen wie erwartet, weil die Bootstrap-Komponenten nie geladen wurden). Wenn ich oben laden Bootstrap als (oder an jedem anderen Ort vor den Tests), dann bekomme ich diese:

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 

Die Linie at /home/ir/work/campari/app/components/jquery/jquery.js:2850 endlos über eine 15k-mal wiederholt, bevor der Test fehlschlägt (so scheint es, zu geschehen, wenn jQuery versucht um die Funktion internalData bei jquery.js auszuführen: 1763).

würde Jede Idee

bearbeitet geschätzt werden:

die Antwort gefunden werden gelöst, es ist ein Bootstrap-Problem in Version 2.3.0 auf 2.3.1 zu aktualisieren war es gelöst. Siehe

+0

Wenn Sie Ihre eigene Frage beantwortet haben, sollten Sie sie tatsächlich als Antwort auf diese Frage einreichen. So wird es nicht im 'unbeantworteten' Bereich angezeigt ;-) –

+0

@TylerEich, zu dieser Zeit konnte ich keine Antworten posten, ich füge es jetzt hinzu – rvignacio

Antwort