Ich versuche einige grundlegende Unit-Tests für AngularJS mit Karma durchzuführen. Alle Tests, die ich geschrieben habe, scheinen syntaktisch korrekt zu sein. Aber ich habe ein Problem im grundlegendsten Schritt, d. H. Vor jedem Teil des Codes. Wenn ich versuche, den Test auszuführen, bekomme ich das folgende Problem
%Vor%Ich habe versucht, dieses Problem für die letzten 36 Stunden zu lösen und hatte bisher kein Glück. Soweit ich sehen kann, scheint niemand dieses Problem zu haben. Das lässt mich denken, dass ich möglicherweise etwas Dummes mache. Ich würde wirklich jede Hilfe schätzen, die Sie mir Leute geben könnten. Ich werde glücklich sein, jeden zusätzlichen Code zu veröffentlichen, den Sie brauchen (solange ich frei bin, es zu enthüllen).
Der entsprechende Code ist folgender-
app.js
%Vor%controllersSpec.js
%Vor%karma.conf.js
%Vor%Ich weiß ehrlich gesagt nicht, ob das überhaupt das Problem ist, und es funktioniert wahrscheinlich nur für Mocha, aber mir ging es genauso, und ich änderte die erste vor jedem Schritt:
%Vor%und es scheint besser zu funktionieren. Es sieht so aus, als ob das Timing des Aufrufs angle.mocks.module besser funktioniert, wenn Sie zulassen, dass das Testframework (in meinem Fall mocha) eine Wrapped-Version der Methode hat.
Dieser Fehler tritt häufig auf, wenn das Problem einfach ein nicht geschlossenes )
oder }
Abgesehen davon, könnte ein Ansatz zur Fehlerbehebung das Problem vereinfachen, bis das Problem behoben ist. Das heißt, beginnen Sie große Teile des Codes zu entfernen, ein Bit nach dem anderen, bis Sie für das Problem "binär-durchsucht" haben.
Ich habe das gleiche Problem.
In meinem Fall tritt dieser Fehler auf, wenn Sie angular 1.0.8 und angular-mocks 1.0.8 mit der neueren Version von Jasmine (2.0.0+, nicht wirklich neu)
angular-mock nimmt eine interne Variable in Jasmine an und sie existiert nicht mehr in der neuen Version. Für weitere Details siehe hier Ссылка .
Die Lösung ist entweder ein Upgrade Ihres Angulars (in meinem Fall nicht möglich) oder ein Downgrade Ihres Jasmins.
Wenn Sie Grunt zum Ausführen von Karma verwenden, wird Ihr Karma-Jasmin auf die Version "~ 0.1.0" herabgestuft, um dieses Problem zu beheben. Diese Version enthält Jasmin, daher sollten Sie 'Jasmine-Core' auch aus Ihren devDependencies entfernen. Der untenstehende Satz von devDependencies funktionierte für mich.
%Vor%Tags und Links javascript angularjs tdd karma-runner