2015-06-30 36 views
13

Dzień dobry,Pokrycie kodu karmy - zawsze w 100%?

Mam dziwny problem, którego nie mogę rozwiązać. Mam poprawnie spisane testy Karmy i wykonanie, ale kiedy próbuję podłączyć kod dla Karmy, po prostu wypluwa 100% bez względu na wszystko.

Spojrzałem na pozostałe pytania, które zostały tu postawione i żadne z nich nie rozwiązało mojego problemu. Każda pomoc będzie bardzo ceniona.

Zastosowanie:

"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", 

Oto moja 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 
    }); 
}; 

Moja struktura pliku jest:

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

Dziękujemy!

+2

Wywołane przez używanie razem preprocesorów "karma-przeglądarka" i "karma-pokrycia". Spójrz na http://stackoverflow.com/a/28237582/2943490 dla działającego configu, który używa browserify i istanbul (co używa pokrycia karmy) razem. – user2943490

Odpowiedz

1

Czy próbowałeś użyć transformacji browserify-istanbul?

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

Musisz "przyswoić" swój kod, aby zebrać dane dotyczące zasięgu. Dlatego powinieneś powiedzieć browserify, aby zastosować oprzyrządowanie przed zwróceniem modułu z require.