2015-06-30 16 views
13

Guten Morgen,Karma-Code-Abdeckung - Immer 100%?

Ich habe ein seltsames Problem, das ich nicht zu lösen scheinen kann. Ich habe meine Karma-Tests geschrieben und die korrekt ausgeführt, aber wenn ich versuche, die Code-Abdeckung für Karma zu verdrahten, spuckt es einfach 100% aus, egal was passiert.

Ich schaute auf die anderen Fragen, die hier angesprochen wurden und keiner von ihnen schien mein Problem zu lösen. Jede Hilfe würde sehr geschätzt werden.

Verwendung:

"karma": "~0.12.37", 
"karma-babel-preprocessor": "^5.2.1", 
"karma-browserify": "^4.2.1", 
"karma-coverage": "^0.4.2", 
"karma-jasmine": "~0.3.5", 
"karma-phantomjs-launcher": "^0.2.0", 

Hier ist meine karma.conf.js

module.exports = function (config) { 
    config.set({ 
    basePath: '', 

    frameworks: ['browserify', 'jasmine'], 

    files: [ 
     'bower_components/jquery/dist/jquery.js', 
     'bower_components/angular/angular.js', 
     'bower_components/angular-animate/angular-animate.js', 
     'bower_components/angular-cookies/angular-cookies.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     'bower_components/angular-resource/angular-resource.js', 
     'bower_components/angular-sanitize/angular-sanitize.js', 
     'bower_components/angular-touch/angular-touch.js', 
     'bower_components/angular-ui-router/release/angular-ui-router.js' 
     'src/*.html', 
     'src/**/*.html', 
     'src/app/index.js', 
     'src/app/**/*.js' 
    ], 

    exclude: [], 

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

    browserify: { 
     debug: true, 
     transform: ['babelify', 'stringify'] 
    }, 

    reporters: ['progress', 'coverage'], 

    port: 9876, 

    colors: true, 

    autoWatch: true, 

    browsers: ['PhantomJS'], 

    singleRun: false 
    }); 
}; 

Meine Dateistruktur ist:

src 
    app 
    login 
     login.controller.js 
     login.controller.spec.js 
     login.html 
    index.js 
karma.conf.js 

Thank you!

+2

Wird durch die Verwendung der Preprozessoren "karma-browserify" und "karma-coverage" verursacht. Werfen Sie einen Blick auf http://StackOverflow.com/A/28237582/2943490 für eine funktionierende Konfiguration, die browserify und istanbul (was Karma-Coverage verwendet) zusammen verwendet. – user2943490

Antwort

1

Haben Sie versucht, browserify-istanbul zu transformieren?

module.exports = function(config) { 
    config.set({ 
     // ... 
     browserify: { 
      transform: ['browserify-istanbul', ...] 
     } 
    }); 
}; 

Sie müssen Ihren Code "instrumentieren", um Coverage-Messwerte zu erfassen. Sie sollten also browserify anweisen, die Instrumentierung anzuwenden, bevor Sie das Modul mit require zurückgeben.