简体   繁体   中英

Karma-coverage checks test coverage in JS files instead of TS in Angular 2

I check test coverage in TypeScript files via Istanbul. And I need to set test threshold via karma-coverage.Istanbul's reports don't match karma-coverage reports (I use Angular-cli) because karma-coverage checks test coverage in JavaScript files instead of TypeScript. I used other plugins such as karma-threshold-reporter,istanbul-threshold-checker but result the same. How can I resolve it?

report generate for typeScript files

report generate for JS files

 module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', 'angular-cli'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-remap-istanbul'), require('karma-coverage'), require('angular-cli/plugins/karma') ], files: [ { pattern: './src/test.ts', watched: false } ], preprocessors: { './src/test.ts': ['angular-cli'] }, remapIstanbulReporter: { reports: { html: 'coverage', lcovonly: './coverage/coverage.lcov' } }, coverageReporter: { dir: 'coverage/', reporters: [ {type: 'text-summary'}, {type: 'html'} ], check: { global: { statements: 70, branches: 70, functions: 70, lines: 50 } } }, angularCli: { config: './angular-cli.json', environment: 'dev' }, reporters: ['progress', 'karma-remap-istanbul', 'coverage'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], singleRun: false }); }; 

plugin: ['karma-remap-istanbul', 'karma-istanbul-threshold'],
  coverageReporter: {
        type: 'in-memory',
    },

    remapCoverageReporter: {
        'text-summary': null,
        json: './coverage/coverage-final.json',
        html: './coverage/html-ts'
    },

    istanbulThresholdReporter: {
        src: './coverage/coverage-final.json',
        reporters: ['text'], 

        thresholds: {
            global: {
                statements: 90,
                branches: 90,
                lines: 90,
                functions: 90,
            }
        },
    },

This configuration worked for me.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM