2016-05-17 13 views
0

Wenn ich Modul verwenden und versuchen, einen Controller in Karma zu injizieren, erhalte ich diese StörungforEach @ Fehler mit Karma

PhantomJS 2.1.1 (Mac OS X 0.0.0) Tests for Profile Controller should work FAILED 
     [email protected]/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:322:24 
     [email protected]/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4548:12 
     [email protected]/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4470:30 
     [email protected]/Users/work/Sites/APP/web-app/bower_components/angular-mocks/angular-mocks.js:2954:60 
     /Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4588:53 
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.004 secs/0.016 secs) 

mein Test

describe('Tests for Profile Controller', function(){ 

    beforeEach(module('app')); 
    var scope, $controller; 

    beforeEach(inject(function(_$controller_) { 
     $controller = _$controller_; 
    })); 

    it('should work', function(){ 

    expect('defined').toBeDefined(); 
    }) 
}) 

Mein Karma Config sieht wie folgt aus

module.exports = function(config) { 
    config.set({ 

    basePath: '', 

    frameworks: ['jasmine'], 

    files: [ 

     'bower_components/angular/angular.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     'dist/js/combined.bower.js', 
     'app/js/routes.js', 
     'app/js/controllers/profile.js', 
     'app/test/unit/controllers/profile.spec.js' 
    ], 

    exclude: [ 
    ], 

    preprocessors: { 
    }, 

    reporters: ['progress'], 

    port: 9876, 

    colors: true, 

    logLevel: config.LOG_INFO, 

    autoWatch: true, 

    browsers: ['PhantomJS'], 

    singleRun: false, 

    concurrency: Infinity 
    }) 
} 

Mein App-Modul ist in meinem routes.js definiert (nicht meine Idee) und der Controller, der gerade versucht, zu testen, ist profile.controll er. Mein bower.combined ist alle meine Bower-Komponenten verkettet und minimiert. Irgendein Grund, warum das passiert?

+1

Vor dem gleichen Problem, hast du eine Lösung gefunden? –

+0

Es stellte sich heraus, Probleme mit dem Laden von Dateien in meinem Karma Conf. Ich löste das Problem durch Laden einer kombinierten Bower-Datei, dann eckige Mocks (Aus irgendeinem Grund ist es nicht genug, in der Kombination bower zu sein, gefolgt von meinem eckigen Modul (ich musste dann die Deklaration aus meiner routes-Datei trennen) Mein Controller-Ordner, dann mein Testordner. Der beste Rat, den ich geben kann, der mir enorm geholfen hat, würde sein, deinen Test zu einem einfachen Controller zu isolieren. Kopieren Sie den Inhalt in eine andere Datei und laden Sie ihn einfach in den Bereich. Holen Sie sich einen Test zur Arbeit. Fügen Sie dann langsam Abhängigkeiten hinzu, um zu sehen, was bricht – ceckenrode

Antwort

1

Es stellte sich heraus, dass es Probleme gab, wie die Dinge in meinem Karma conf geladen wurden. Ich löste das Problem, indem ich zuerst eine kombinierte Bower-Datei lud, dann eckige Mocks (aus irgendeinem Grund in der kombinierten Bower nicht genug, gefolgt von meinem eckigen Modul (ich musste die Deklaration aus meiner Routes-Datei trennen, dann meinen Controller-Ordner, dann mein Testordner. Der beste Rat, den ich geben kann, der mir ungeheuer half, würde sein, deinen Test zu einem einfachen Steuerpult zu isolieren. Kopieren Sie seinen Inhalt in eine andere Akte und laden Sie einfach in Geltungsbereich. erhalten Sie einen Test, um zu arbeiten