【发布时间】:2016-01-22 00:21:45
【问题描述】:
我正在尝试获取我的测试的覆盖率报告,但所有文件的覆盖率输出总是在一行中,显示文件路径的要求。比如……
但是测试运行良好。这是一个反应项目,所以我必须包含一些额外的文件路径和预处理器才能运行测试。
我不确定我的 karma 配置是否有问题?这就是我目前的配置...
/* global module */
module.exports = function (config) {
'use strict';
config.set({
autoWatch: true,
singleRun: true,
frameworks: ['browserify', 'jasmine'],
files: [
'node_modules/karma-babel-preprocessor/node_modules/babel-core/browser-polyfill.js',
'node_modules/react/react.js',
'src/**/*.jsx',
'src/**/!(*spec).js'
],
browsers: ['PhantomJS'],
preprocessors: {
'node_modules/react/react.js': ['browserify', 'sourcemap'],
'src/**/*.jsx': ['browserify', 'sourcemap', 'coverage'],
'src/**/!(*spec).js': ['browserify', 'sourcemap', 'coverage'],
},
browserify: {
debug: true,
transform: [ 'babelify' ]
},
reporters: ['progress', 'coverage'],
coverageReporter: {
instrumenters: {isparta: require('isparta')},
instrumenter: {
'src/**/*.js': 'isparta',
'src/**/*.jsx': 'isparta'
},
reporters: [
{
type: 'text-summary',
subdir: normalizationBrowserName
},
{
type: 'lcov',
subdir: normalizationBrowserName
},
{
type: 'html',
dir: 'coverage/',
subdir: normalizationBrowserName
}
]
}
});
function normalizationBrowserName(browser) {
return browser.toLowerCase().split(/[ /-]/)[0];
}
};
更新: 我也使用了 commonjs 转换,并且能够让事情更好地工作,但测试无法运行,并且覆盖范围是转换后的代码。
【问题讨论】:
标签: reactjs ecmascript-6 browserify karma-jasmine istanbul