Relatório de cobertura com gulp e istambul

Passei muito tempo nesta tarefa de cobertura de teste de unidade. Para obter o relatório de cobertura completo, incluindo arquivos que não são processados ​​por teste de unidade (os mais importantes, na verdade!), Você precisa configurar sua tarefa assim:

return gulp.src(['./build/target/**/*.js', '!./build/target/static/**'])
.pipe(istanbul())
.pipe(tap(function(f) {
// Make sure all files are loaded to get accurate coverage data
require
(f.path);
}))
.on('end', function() {
gulp
.src(src)
.pipe(jasmine())
.pipe(istanbul.writeReports({
dir
: './build/unit-test-coverage',
reporters
: [ 'lcov' ],
reportOpts
: { dir: './build/unit-test-coverage' }
}));
});

A chave injetando uma torneira dentro do pipeline para exigir todos os arquivos APÓS a instrumentação. Isso adicionará uma referência a esse arquivo em Istambul e o adicionará como um arquivo descoberto no relatório final. Se você omitir isso, só obterá arquivos que foram tocados por testes de unidade, o que não é bom.