我正在尝试使用业力测试我的文件array.js,该文件只有36行,但是覆盖率报告显示“ Lines ....”(请参阅我上传的png),这些值的含义是什么,为什么它与我的测试代码不匹配?是我使用es6的原因吗?
如何获得正确的报告?
业力配置
const webpackConfig = {
devtool: 'inline-source-map',
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /(node_modules|vendor)/,
loader: 'babel-loader'
}
]
}
};
module.exports = function (config) {
config.set({
basePath: '../',
plugins: [
'karma-webpack',
'karma-mocha',
'karma-phantomjs-launcher',
'karma-verbose-reporter',
'karma-coverage'
],
webpack: webpackConfig,
webpackServer: {
noInfo: true
},
frameworks: ['mocha'],
files: [
'test/**/*.js',
'src/**/*.js'
],
preprocessors: {
'test/**/*.js': ['webpack'],
'src/**/*.js': ['webpack', 'coverage']
},
reporters: ['verbose', 'coverage'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
concurrency: Infinity,
coverageReporter: {
includeAllSources: true,
dir: 'coverage/',
reporters: [
{type: "html", subdir: "html"},
{type: 'text-summary'}
]
}
});
};
最佳答案
业力会从您的项目中执行您测试范围内的所有文件。您得到的报告是针对项目中所有文件的。以下是每个值的说明:
语句:程序中的每个语句是否都已执行?
分支:是否已执行每个控制结构(例如if和case语句中)的每个分支(也称为DD路径)?例如,给定一个if语句,是否同时执行了true和false分支?换句话说,程序中的每个边都执行了吗?
函数:是否已调用程序中的每个函数(或子例程)?
行:源文件中的每个可执行行是否都已执行?
详细说明:
https://en.wikipedia.org/wiki/Code_coverage