singleRun = true 时未创建业力覆盖文件
Posted
技术标签:
【中文标题】singleRun = true 时未创建业力覆盖文件【英文标题】:karma-coverage files not created while singleRun = true 【发布时间】:2014-12-08 08:29:31 【问题描述】:我正在使用 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
);
;
【问题讨论】:
你使用的是什么版本的karma
?
【参考方案1】:
预处理器旨在映射源文件,而不是测试文件。执行以下操作:
将预处理器模式更改为:
preprocessors:
'/**/*.js': ['coverage']
,
并将 JS 文件添加到测试映射中:
pattern: '**/*.js', included: true
重新运行 karma 并查看结果
【讨论】:
以上是关于singleRun = true 时未创建业力覆盖文件的主要内容,如果未能解决你的问题,请参考以下文章