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.
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 ]
) );
} );
} );
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'}
}));
});
});
Source : https://github.com/SBoudrias/gulp-istanbul#includeuntested