Karma-Coverage 和伊斯坦布尔 HTML 报告未输出到预期目录
Posted
技术标签:
【中文标题】Karma-Coverage 和伊斯坦布尔 HTML 报告未输出到预期目录【英文标题】:Karma-Coverage and Istanbul HTML report not output to expected directory 【发布时间】:2015-11-29 02:04:34 【问题描述】:我无法让伊斯坦布尔将其 html 报告输出到我的 Karma 配置中指定的目录。它当前在正确的目录(reports/coverage
)中输出主 index.html,但详细的 html 子页面输出到与源文件相同的目录(www/js/...
)。与here 和here 描述的问题相同,但在尝试了建议的解决方案后,问题仍然存在。
这是我的业力配置文件的内容:
basePath: './',
frameworks: ['jasmine'],
files: [
'www/lib/angular/angular.js',
'www/js/*.js',
'www/js/services/*.js',
'www/js/controllers/*.js',
'www/lib/angular-mocks/angular-mocks.js',
'tests/**/*test.js',
'tests/test-data/*.json'
],
plugins: [
'karma-jasmine',
'karma-coverage',
'karma-phantomjs-launcher',
'karma-ng-json2js-preprocessor'
],
preprocessors:
'www/js/**/*.js': ['coverage'],
'tests/**/*.json': ['ng-json2js']
,
ngJson2JsPreprocessor:
stripPrefix: 'tests/test-data/',
prependPrefix: 'served/'
,
reporters: ['progress', 'coverage'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: true,
coverageReporter:
// Common output directory
dir: 'coverage',
reporters: [
type: 'text-summary',
type: 'html', subdir:'report-html'
]
非常感谢有关如何解决此问题的建议,以便将所有覆盖文件放入reports/coverage
目录中。谢谢。
【问题讨论】:
【参考方案1】:我自己也遇到过这个问题,发现我必须在 coverageReporter 配置的记者部分中更明确一点,方法是为每个文件指定目录和子目录。
coverageReporter:
reporters: [
type: 'text-summary', dir: 'coverage/' ,
type: 'html', dir: 'coverage/', subdir: 'report-html'
]
我无法解释为什么这种组合最终对我有用,但经过多次排列后,我最终得到了。
【讨论】:
以上是关于Karma-Coverage 和伊斯坦布尔 HTML 报告未输出到预期目录的主要内容,如果未能解决你的问题,请参考以下文章
将来自 karma-coverage 的 istanbul 测试覆盖率与来自其他来源的覆盖率合并
KarmaJS 中的代码覆盖率过高,具有 karma-coverage 和 Jasmine
使用 karma-coverage 和 angularjs 对每个源文件进行代码覆盖