完整的 Gulp 伊斯坦布尔报道

我正在使用 gulp-istanbul 通过 Gulp 生成 JavaScript 单元测试覆盖率报告.有没有办法配置 Istanbul 以生成我的 gulp 流中所有 JS 文件的完整覆盖率报告,而不仅仅是测试用例涉及的文件.

I am using gulp-istanbul to generate JavaScript unit test coverage reports through Gulp. Is there a way to configure Istanbul to generate a full coverage report of all the JS files in my gulp stream, and not just the files touched by a test case.

我正在做一个有很多 JS,但没有单元测试的项目,我们正在努力增加测试覆盖率.我想要一份覆盖率报告,首先显示我们大多数文件的 0% 覆盖率,但随着时间的推移,覆盖率会越来越高.

I'm working on a project with a lot of JS, but no unit tests, and we are trying to increase the test coverage. I would like to have a coverage report that starts by show 0% coverage for most of our files, but over time will present an increasing coverage percentage.

gulp.task( 'test', function () {
    gulp.src( [ my source glob ] )
        .pipe( istanbul() )
        .on( 'end', function () {
            gulp.src( [ my test spec glob ] )
                .pipe( mocha( {
                    reporter: 'spec'
                } ) )
                .pipe( istanbul.writeReports(
                    [ output location ]
                ) );
        } );
} );

推荐答案

现在其实简单多了,你只需要添加 includeUntested 到你的 istanbul()打电话.

It actually is much more simple now and you just have to add includeUntested to your istanbul() call.

gulp.task('test', function () {
    return gulp.src('./assets/**/js/*.js')
      // Right there
      .pipe(istanbul({includeUntested: true}))
      .on('finish', function () {
        gulp.src('./assets/js/test/test.js')
          .pipe(mocha({reporter: 'spec'}))
          .pipe(istanbul.writeReports({
            dir: './assets/unit-test-coverage',
            reporters: [ 'lcov' ],
            reportOpts: { dir: './assets/unit-test-coverage'}
          }));
      });
  });

来源:https://github.com/SBoudrias/gulp-istanbul#includeuntested

相关文章