我正在使用Karma来运行我的单元测试,现在我正在尝试将karma-coverage
合并到我的流程中。
我使用PhantomJS
使用singleRun: true
运行测试。每当我这样做,我的代码覆盖率记者似乎没有运行。如果我设置singleRun: false
,则会创建文件夹和文件。
为什么业力覆盖工具没有运行?
这是我的配置文件:
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['mocha', 'requirejs', 'sinon-chai'],
files: [
{ pattern: 'bower_components/angular/angular.js', included: false },
{ pattern: 'bower_components/jquery/dist/jquery.js', included: false },
{ pattern: 'bower_components/angular-mocks/angular-mocks.js', included: false },
{ pattern: '**/*.js', included: false },
{ pattern: 'KarmaTests/test-main.js', included: true },
{ pattern: 'KarmaTests/**/*Test*.js', included: false }
],
preprocessors: {
'KarmaTests/*/*.js': ['coverage']
},
reporters: ['progress', 'coverage'],
coverageReporter: {
type: 'html',
dir: '_testCoverage/',
file: 'cover.html'
},
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
//files are created when false, are not when true
singleRun: false
});
};
答案 0 :(得分:0)
预处理器旨在映射源文件,而不是测试文件。执行以下操作:
将预处理器模式更改为:
preprocessors: {
'/**/*.js': ['coverage']
},
并将JS文件添加到测试映射中:
{ pattern: '**/*.js', included: true }
重新运行业力并查看结果