我正在尝试为具有 mocha 测试的节点 js es6 应用程序生成伊斯坦布尔覆盖率报告。我使用 isparta 来检测代码,也使用 babel 从 ES6 转换到 ES5,但不幸的是没有任何效果。是否有人成功使用 gulp istanbul 生成代码覆盖率报告。当我在非 ES6 代码覆盖率报告上从命令行运行 nyc 时(我有一些以非 ES6 风格编写的单元测试)。请在下面找到代码。
gulp.task('coverage',function(cb){
return gulp.src(['./server/controllers/*.js','./server/services/*.js'])
.pipe(istanbul({
includeUntested:true,
instrument: Instrumenter,
excludes:[['*.spec.js', '*.watcherSpec.js','*.intspec.js',]]}))
.pipe(babel({
plugins:[["transform-es2015-arrow-functions",{ "spec": true }]]
}))
.pipe(istanbul.hookRequire()) //force 'require' to return covered files
})
gulp.task('api-tests', ['coverage'], function (cb) {
gulp.src(['./server/**/*.intspec.js'])
.pipe(mocha({
harmony: true,
timeout: '10000',
reporter: 'spec',
excludes: ['*.spec.js', '*.watcherSpec.js'],
env: {
'NODE_ENV': 'integration-testing',
'hostedAddress': hostedAddress
}
}))
.pipe(istanbul.writeReports({
dir: './coverage',
reporters: [ 'html' ],
reportOpts: { dir: './coverage'}
}))
.on('end', cb);
});