2016-03-19 20 views
1

ich benutze karma-mocha ..meine karma.conf-Datei arbeitet mit Karma-Jasmin ... aber nicht Arbeit mit Karma-Mokka .... meine karma.conf Datei: -Uncaught Error: Der Modulname "lib/chai" wurde noch nicht für den Kontext geladen: use require ([])

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

    basePath : '../app', 

    preprocessors: { 
     '**/*.html':'ng-html2js' 
    }, 

    ngHtml2JsPreprocessor: { 
     prependPrefix: '/' 
    }, 

    files : [ 
    'node_modules/jquery/**/*.js', 
     'lib/angular/angular.js', 
     'lib/angular/angular-*.js', 
     '../test/lib/angular-mocks.js', 
     '../test/lib/sinon-1.15.0.js', 
     '../test/chai/chai.js', 
     'js/**/*.js', 
     '../test/unit/**/*.js', 
     '**/*.html' 
    ], 

    autoWatch : true, 

    frameworks: ['mocha','requirejs','chai'], 

    browsers : ['Chrome'], 

    plugins : [ 
     'karma-chrome-launcher', 
     'karma-mocha', 
     'karma-ng-html2js-preprocessor', 
     'karma-requirejs', 
     'karma-chai' 
    ], 

    junitReporter : { 
     outputFile: 'test_out/unit.xml', 
     suite: 'unit' 
    } 

    }); 
}; 
+0

irgendein Fehler auf der Konsole? –

+0

@RIYAJ KHAN alles funktionierte gut mit Jasmin .. ich glaube nicht. –

Antwort

0

Sie chai lib Pfad files array, in denen fehlende Abhängigkeit es mocha.include ist.

files : [ 
     'node_modules/jquery/**/*.js', 
      'lib/angular/angular.js', 
      'lib/angular/angular-*.js', 
      '../test/lib/angular-mocks.js', 
      '../test/lib/sinon-1.15.0.js', 
      '../test/chai/chai.js', 
      'js/**/*.js', 
      '../test/unit/**/*.js', 
      '**/*.html' 
     ], 
+0

@ RIYAJ KHAN JI immer noch bekomme ich den gleichen Fehler ..... Chrome 49.0.2623 (Windows 7 0.0.0) FEHLER Uncaught Fehler: Modulname "Chai" wurde noch nicht geladen für Kontext: _. Verwenden Sie require ([]) http://requirejs.org/docs/errors.html#notloaded bei C:/6-angularjs-Grundlagen-m6-testing-Übungsdateien/Fertig/DemoApp/node _modules/requirejs/require.js: 143 –

+0

Bitte teilen Sie das Testskript –

+0

DIESES IST EIN MODUL DIESES SCRIPT; "streng verwenden"; var chai = require ('chai'); expect = chai.expect; chai.should(); beschreiben ('calendarHelper', function() { before (Modul ('eventsApp')); sie ('sollte Januar zurück, wenn eine Null gegeben', injizieren (function (calendarHelper) { erwarten (calendarHelper .getMonthName (0)). toBe ('Januar'); })) }); –

-1

Ich fand eine ähnliche Situation nur mit Jasmine. Ich möchte meine Lösung vorstellen.

Versuchen Sie es, was in der Fehlermeldung geschrieben wird. Es gibt einen Link zu einer Webseite: http://requirejs.org/docs/errors.html#notloaded

//If this code is not in a define call, 
//DO NOT use require('foo'), but use the async 
//callback version: 
require(['foo'], function (foo) { 
    //foo is now loaded. 
}); 

Mein Fall für Jasmin in Kaffee-Skript wie folgt aussieht geschrieben:

sinon = require(['sinon', 'jasmine-sinon']) (foo)-> 

Jetzt habe ich sinon als Objekt in meinem Unit-Test verwenden kann, und kann auch Befolgen Sie die Dokumentation von Sinon, sowie Jasmin-Sinon.

+0

Der Rückgabewert eines 'require' Aufrufs mit einem Array von Abhängigkeiten ist ** nicht ** ein Modul, also die Zeile' sinon = require ([...]) 'kann nicht stimmen. – Louis

+0

Und wenn Sie versuchen, ist ohne "Sinon ="? Was passiert dann? – LSR

+0

Sie müssen das Rückrufformular verwenden, das Sie in Ihrem ersten Snippet angezeigt haben. – Louis