2013-03-26 29 views
20

Tôi đang cố gắng để có được Á hậu Karma để tạo ra các báo cáo bảo hiểm được định dạng mã cobertura trong khi xây dựng Jenkins. Tôi có thể làm cho nó để tạo ra một tập tin coverage.xml, nhưng nó không thực sự có bất kỳ dữ liệu bảo hiểm. Nó xuất hiện (sử dụng LOG_DEBUG) rằng bộ tiền xử lý phủ sóng không hoạt động.Làm thế nào để thiết lập bảo hiểm mã runner Karma?

Các mảnh có liên quan từ tập tin karma.conf.js của tôi là:

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

(Báo cáo junit đang tạo tốt.)

Trả lời

25

Rõ ràng karma code coverage documentation là nghĩa đen nhiều hơn tôi nghĩ. Thay đổi cấu hình preprocessors của tôi thành

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

(thông báo trước **/) đã thực hiện thủ thuật. Tôi không chắc tại sao cú pháp lại khác với mảng files và đối tượng preprocessors ('tmp/scripts/**/*.js' so với '**/tmp/scripts/**/*.js').

+0

cảm ơn bạn! Điều này làm tôi bối rối cũng như tôi chỉ sao chép và dán từ mảng tệp trong karma.conf.js. – grant

Các vấn đề liên quan