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
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.