2013-03-26 23 views
20

Próbuję zachęcić biegacza do karmy do generowania raportów o pokryciu kodu w formacie cobertura podczas kompilacji Jenkinsa. Mogę go wygenerować, aby wygenerować plik coverage.xml, ale w rzeczywistości nie ma żadnych danych pokrycia. Pojawia się (przy użyciu LOG_DEBUG), że preprocesor pokrycia nie działa.Jak ustawić zasięg kodu karmy?

Odpowiednie fragmenty z mojego pliku karma.conf.js są:

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

(raport JUnit jest generowanie porządku.)

Odpowiedz

25

Widocznie karma code coverage documentation było bardziej dosłowne niż myślałem. Zmiana moją konfigurację preprocessors do

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

(zawiadomienie poprzedzającego **/) załatwiło sprawę. Nie wiem, dlaczego składnia jest inna w przypadku macierzy files i obiektu preprocessors ('tmp/scripts/**/*.js' vs.).

+0

dziękuję! To mnie zdezorientowało, a także skopiowałem i wkleiłem z tablicy plików w pliku karma.conf.js. – grant