J'essaie d'obtenir que Karma runner génère des rapports de couverture de code au format cobertura lors d'une génération Jenkins. Je peux l'obtenir pour générer un fichier coverage.xml, mais il n'a en fait aucune donnée de couverture. Il apparaît (en utilisant LOG_DEBUG
) que le préprocesseur de couverture n'est pas en cours d'exécution.
Les pièces pertinentes de mon karma.conf.js
les fichiers sont:
files = [
JASMINE,
JASMINE_ADAPTER,
'app/components/angular/angular.js',
'app/components/angular-mocks/angular-mocks.js',
'tmp/scripts/**/*.js',
'tmp/spec/**/*.js'
];
preprocessors = {
'tmp/scripts/**/*.js': 'coverage'
};
// test results reporter to use
// possible values: 'dots', 'progress', 'junit'
reporters = ['dots', 'junit', 'coverage'];
junitReporter = {
outputFile: 'test-results.xml'
};
coverageReporter = {
type: 'cobertura',
dir: 'coverage/',
file: 'coverage.xml'
};
(Le rapport junit génère bien.)
Apparemment, le documentation de couverture du code karma était plus littéral que je ne le pensais. Modification de ma configuration preprocessors
en
preprocessors = {
'**/tmp/scripts/**/*.js': 'coverage'
};
(remarquez le précédent **/
) a fait l'affaire. Je ne sais pas pourquoi la syntaxe est différente pour le tableau files
et l'objet preprocessors
('tmp/scripts/**/*.js'
contre. '**/tmp/scripts/**/*.js'
).