web-dev-qa-db-fra.com

Comment configurer la couverture du code du coureur Karma?

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.)

23
Noah Freitas

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').

28
Noah Freitas