2013-03-26 11 views
20

Sto tentando di far sì che Karma runner generi rapporti di copertura del codice in formato cobertura durante una build di Jenkins. Posso ottenere per generare un file coverage.xml, ma in realtà non ha alcun dato di copertura. Appare (usando LOG_DEBUG) che il preprocessore della copertura non è in esecuzione.Come impostare la copertura del codice runner Karma?

I pezzi rilevanti dal mio file karma.conf.js sono:

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' 
}; 

(Il rapporto JUnit sta generando bene.)

risposta

25

A quanto pare il karma code coverage documentation era più letterale di quanto pensassi. Cambiare la mia configurazione preprocessors a

preprocessors = { 
    '**/tmp/scripts/**/*.js': 'coverage' 
}; 

(notare il precedente **/) ha fatto il trucco. Non sono sicuro del motivo per cui la sintassi è diversa per l'array files e l'oggetto preprocessors ('tmp/scripts/**/*.js' rispetto a '**/tmp/scripts/**/*.js').

+0

grazie! Questo mi ha confuso e ho appena copiato e incollato dall'array dei file in karma.conf.js. – grant

Problemi correlati