Search code examples
angularjsgulpmocha.jskarma-mocha

Can not load "mocha" framework on karma configuration file while executing gulp task


While executing gulp test-browser command, I got following warning message

WARN [reporter]: Can not load "mocha", it is not registered!
Perhaps you are missing some plugin?

but if i execute karma start command its working fine and it not shows any warning message.

Why do I get this warning message?
What am I missing here?

package.json

{
'''
 "dependencies": {
    "browser-sync": "^2.9.12",
    "gulp": "^3.9.0",
    "karma": "^0.13.15",   
    "karma-mocha": "^0.2.0",
    "mocha": "^2.3.3"
  },
  "devDependencies": {
    "karma-phantomjs-launcher": "^0.2.1",
    "phantomjs": "^1.9.18"
  }
}

gulpfile.js

gulp.task('test-browser', function () {
var config = {
    configFile: __dirname + '/karma.conf.js',
    singleRun: true,
    reporters: ['mocha']
};
var server = new Server(config);
server.start();
});

karma.conf.js

module.exports = function (config) {
config.set({
    browsers: ['PhantomJS'],        
    frameworks: ['mocha'],
    files: [
        "bower_components/angular/angular.js",
        "bower_components/chai/chai.js",
        "app/**/*.js",
        "test/*.spec.js"
        ]
    });
};

Solution

  • The problem here is that you dont have karma-mocha-reporter installed or added in your karma.conf.js plugins.

    If you dont have it installed.

    npm install karma-mocha-reporter --save-dev
    

    And add it to your karma.conf.js plugins.

    module.exports = function(config){
    config.set({
        plugins:['karma-mocha','karma-phantomjs-launcher','karma-mocha-reporter'],
        browsers:['PhantomJS'],
        frameworks:['mocha'],
        files:[
            "bower_components/angular/angular.js",
            "bower_components/angular-mocks/angular-mocks.js",
            "bower_components/chai/chai.js",
    
            "app/**/*.js",
    
            "test/*.js"
        ],
        colors: true,
    })
    }
    

    It should resolve the warning and get it working.