У меня есть вопрос, касающийся Istanbul Reporter, который использовался для сообщения о моем модульном тестировании в моем приложении под углом 6.
Моя проблема: когда рендеринг покрытия отображается, в списке протестированных файлов я вижу насмешки и, очевидно,mocks не проверены, что дает мне неверную статистику покрытия.
Это моя настройка файла karma.conf от коллеги, и я хотел бы знать, есть ли у вас какие-либо идеи о том, как исключить эти фиктивные файлы.
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, 'coverage'), reports: [ 'html', 'lcovonly' ],
fixWebpackSourcePaths: true
},
angularCli: {
environment: 'local'
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
Я видел в StackOverflow, что это можно сделать, добавив исключение в tsconfig.spec.json, но даже при повторном запуске покрытия кода оно все равно включает их.
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
"module": "commonjs",
"types": [
"jasmine",
"node"
],
"typeRoots": [ "../node_modules/@types" ]
},
"files": [
"src/test.ts",
"src/polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
],
"exclude": [
"/**/*mock*.ts"
]
}
Мои фиктивные файлы находятся внутри tests / mocks папка в каждом модуле / функции и называются "mock-whatevertheymock.ts"
Команда для запуска -
test:wc-dogs": "ng test --project=wc-dogs--code-coverage
Спасибо за помощь