我正在使用 jasmine 和 karma 进行单元测试。 Istanbul 尔记者。
我想指定哪个文件夹被考虑用于代码覆盖。 我想排除其他一切。
现在我完全不知道配置是如何工作的。 core 文件夹是我想要考虑代码覆盖率的唯一文件夹。 (必须粘贴屏幕截图,因为防火墙不允许我上传图像)
karma 配置:
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'
]
});
};
记者:
编辑:
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);
给予:
最佳答案
在 src 文件夹中配置 test.js 以仅指向要运行测试的文件夹
// Then we find all the tests.
const context = require.context('./app/folderyouwantoruntestcas', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
关于javascript - 如何指定我想要包含 Angular 代码覆盖率文件的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56952573/