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.