Я использую жасмин и карму для юнит-тестирования. Стамбульский репортер.
Я хочу указать, какая папка должна рассматриваться для покрытия кода.
Я хочу исключить все остальное.
Сейчас я совершенно не понимаю, как работает конфигурация.
основная папка - единственная папка, которую я хочу рассмотреть для покрытия кода.
(пришлось вставить скриншот, потому что брандмауэр не позволяет загружать изображения)
karma.config:
module.exports = function (config) {
config.set({
basePath: '',
files:['mockData.js', 'mockLocalization.js'],
frameworks: ['jasmine', '@angular/cli'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
//require('karma-phantomjs-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular/cli/plugins/karma'),
require('karma-scss-preprocessor'),
require('karma-sonarqube-reporter'),
require('karma-junit-reporter'),
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
angularCli: {
environment: 'dev'
},
coverageIstanbulReporter: {
reports: [ 'html', 'lcov', 'cobertura' ],
fixWebpackSourcePaths: true,
},
junitReporter:{
useBrowserName: false,
outputDir: 'report',
// will be resolved to basePath (in the same way as files/exclude patterns)
outputFile: 'karma-report.xml'
},
coverageReporter: {
includeAllSources: false,
dir: 'coverage',
reporters: [
{ type: 'html', subdir: 'html' }
]
},
reporters: ['progress', 'kjhtml','coverage-istanbul'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'], //make sure it is chromeHeadless while running the pipeline otherwise it will fail.
singleRun: true,
browserDisconnectTimeout: 20000,
browserDisconnectTolerance: 3,
browserNoActivityTimeout: 120000,
flags: [
'--disable-web-security',
'--disable-gpu',
'--no-sandbox'
]
});
};
Репортер:
EDIT:
const context = require.context('./core', true, /\.spec\.ts$/);
context.keys().map(context);
ВЫглядит ХОРОШО!
НО
const context = require.context('./core', true, /\.spec\.ts$/);
context.keys().map(context);
const context2 = require.context('./modules', true, /\.spec\.ts$/);
context2.keys().map(context2);
Дает:
ПОЧЕМУ ЭТО ВКЛЮЧАЕТ ПАПКУ АКТИВОВ ВСЕМ ВНЕШНЕГО ??