Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can not load "teamcity", it is not registered! Perhaps you are missing some plugin?

I'm trying to run my karma (version v0.10.2) unit tests on teamcity (version 7.1).

When I run karma start --reporters teamcity --single-run I get the following error:

Can not load "teamcity", it is not registered!  Perhaps you are missing some plugin?

I have installed the karma-teamcity-reporter module, but that hasn't helped.

The following are installed in my local node_modules folder:

karma
karma-chrome-launcher
karma-coffee-preprocessor
karma-coverage
karma-firefox-launcher
karma-html2js-preprocessor
karma-jasmine
karma-phantomjs-launcher
karma-requirejs
karma-script-launcher
karma-teamcity-reporter

Here is my karma.conf.js:

I'm running karma version v0.10.2. Here's my karma.conf.js:

module.exports = function(karma) {
    karma.set({
        // base path, that will be used to resolve files and exclude
        basePath: '../../myapplication.web',

        frameworks: ['jasmine'],

        plugins: [
          'karma-jasmine',
          'karma-coverage',
          'karma-chrome-launcher',
          'karma-phantomjs-launcher'
        ],

        // list of files / patterns to load in the browser
        files: [
            'Scripts/jquery/jquery-2.0.2.min.js',
            'Scripts/jquery-ui/jquery-ui-1.10.3.min.js',
            'Scripts/daterangepicker/daterangepicker.js',
            'Scripts/angular/angular.js',
            'Scripts/angular/restangular/underscore-min.js',
            'Scripts/angular/restangular/restangular-min.js',
            'Scripts/angular/angular-*.js',
            'Scripts/angular/angular-test/angular-*.js',
            'Scripts/angular/angular-ui/*.js',
            'Scripts/angular/angular-strap/*.js',
            'Scripts/angular/angular-http-auth/*.js',
            'Scripts/sinon/*.js',
            'Scripts/moment/moment.min.js',
            'uifw/scripts/ui-framework-angular.js',
            'app/app.js',
            'app/**/*.js',
            'Tests/unit/**/*.js'
        ],


        // list of files to exclude
        exclude: [
            'Scripts/angular/angular-test/angular-scenario.js'
        ],

        // test results reporter to use
        // possible values: 'dots', 'progress', 'junit'
        reporters: ['progress', 'coverage', 'teamcity'],

        preprocessors : {
            'app/**/*.js': ['coverage']
        },

        coverageReporter : {
            type: 'html',
            dir: 'Tests/coverage/'
        },

        // web server port
        port : 9876,

        // cli runner port
        runnerPort : 9100,

        // enable / disable colors in the output (reporters and logs)
        colors : true,


        // level of logging
        // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
        logLevel : karma.LOG_INFO,


        // enable / disable watching file and executing tests whenever any file changes
        autoWatch : true,

        // Start these browsers, currently available:
        // - Chrome
        // - ChromeCanary
        // - Firefox
        // - Opera 
        // - Safari (only Mac)
        // - PhantomJS
        // - IE (only Windows)
        browsers: ['PhantomJS'],

        // If browser does not capture in given timeout [ms], kill it
        captureTimeout : 60000,


        // Continuous Integration mode
        // if true, it capture browsers, run tests and exit
        singleRun : true
    });
};

If I run karma start karma.conf.js it runs correctly. What am I doing wrong?

like image 447
Simon Lomax Avatar asked Oct 22 '13 09:10

Simon Lomax


1 Answers

Turned out I needed to add karma-teamcity-reporter to the plugins section to get this to work:

...

plugins: [
          'karma-teamcity-reporter',
          'karma-jasmine',
          'karma-coverage',
          'karma-chrome-launcher',
          'karma-phantomjs-launcher'
        ],

...
like image 188
Simon Lomax Avatar answered Nov 17 '22 16:11

Simon Lomax