2015-10-22 3 views
8

Я пытаюсь получить отчет о покрытии для своих тестов, но вывод покрытия для всех файлов всегда находится в одной строке, отображающей требуемый путь к файлу. Например ...Karma + Browserify + Jasmine + Istanbul + React coverage

enter image description here

Испытания однако работают нормально. Это реактивный проект, поэтому мне пришлось включить дополнительные файлы в файлы и препроцессор, чтобы запустить тесты.

Я не уверен, что что-то не так с моей конфигурацией кармы? Это то, что моя конфигурация в настоящее время выглядит ...

/* global module */ 
module.exports = function (config) { 
    'use strict'; 
    config.set({ 
     autoWatch: true, 
     singleRun: true, 

     frameworks: ['browserify', 'jasmine'], 

     files: [ 
      'node_modules/karma-babel-preprocessor/node_modules/babel-core/browser-polyfill.js', 
      'node_modules/react/react.js', 
      'src/**/*.jsx', 
      'src/**/!(*spec).js' 
     ], 

     browsers: ['PhantomJS'], 

     preprocessors: { 
      'node_modules/react/react.js': ['browserify', 'sourcemap'], 
      'src/**/*.jsx': ['browserify', 'sourcemap', 'coverage'], 
      'src/**/!(*spec).js': ['browserify', 'sourcemap', 'coverage'], 
     }, 

     browserify: { 
      debug: true, 
      transform: [ 'babelify' ] 
     }, 

     reporters: ['progress', 'coverage'], 

     coverageReporter: { 
      instrumenters: {isparta: require('isparta')}, 
      instrumenter: { 
       'src/**/*.js': 'isparta', 
       'src/**/*.jsx': 'isparta' 

      }, 
      reporters: [ 
       { 
        type: 'text-summary', 
        subdir: normalizationBrowserName 
       }, 
       { 
        type: 'lcov', 
        subdir: normalizationBrowserName 
       }, 
       { 
        type: 'html', 
        dir: 'coverage/', 
        subdir: normalizationBrowserName 
       } 
      ] 
     } 

    }); 

    function normalizationBrowserName(browser) { 
     return browser.toLowerCase().split(/[ /-]/)[0]; 
    } 

}; 

UPDATE: Я использовал CommonJS преобразования, а также и был в состоянии получить вещи работать немного лучше, но тесты бы не работать и освещение был преобразованный код.

ответ

-1

Обязательно укажите весь исходный код для покрытия. Например, у меня есть следующий файл karma.conf.js: (проверьте раздел препроцессора)

// Karma configuration 
// Generated on Mon Sep 07 2015 23:22:13 GMT-0400 (Eastern Daylight Time) 

module.exports = function(config) { 

    var SourceCode = [ 
     'app/app.js', 
     'app/Modules/*.js',      // Basic Path Files (Modules for Source, UnitTests to keep test files separate) 
     'app/Modules/**/_*.init.js',   // Declarative functions needed for next line - Initialization Code 
     'app/Modules/**/*.js', 
     'app/UnitTests/**/*.mock.js',   // Mock Declarations for Tests 
     'app/UnitTests/**/*.test.js' 
    ]; 

    var Libraries = [ 
     'app/bower_components/angular/angular.js', 
     'app/bower_components/angular-animate/angular-animate.js', 
     'app/bower_components/angular-aria/angular-aria.js', 
     'app/bower_components/angular-route/angular-route.js', 
     'app/bower_components/firebase/firebase.js', 
     ... 
// Testing 
     'app/bower_components/angular-mocks/angular-mocks.js', 
     'app/bower_components/angular-material/angular-material-mocks.js', 
     'app/bower_components/mockfirebase/browser/mockfirebase.js', 
     'node_modules/sinon/pkg/sinon.js', 
    ]; 

    config.set({ 
     // base path that will be used to resolve all patterns (eg. files, exclude) 
     basePath: '', 


     // frameworks to use 
     // available frameworks: https://npmjs.org/browse/keyword/karma-adapter 
     frameworks: ['mocha', 'chai'],  // 


     // list of files/patterns to load in the browser 
     files: Libraries.concat(SourceCode), 


     // list of files to exclude 
     exclude: [ 
     ], 


     // preprocess matching files before serving them to the browser 
     // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 
     preprocessors: { 
      'app/Modules/**/*.js': ['coverage']   // Ensure all files are in Code Coverage 
     }, 

     // test results reporter to use 
     // possible values: 'dots', 'progress' 
     // available reporters: https://npmjs.org/browse/keyword/karma-reporter 
     reporters: ['progress', 'coverage'],  

     coverageReporter: { 
      type : 'html', 
      dir : 'docs/coverage/' 
     }, 

     logLevel: 'LOG_DEBUG', 

     // web server port 
     port: 9876, 


     // enable/disable colors in the output (reporters and logs) 
     colors: true, 


     // level of logging 
     // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 
     logLevel: config.LOG_INFO, 


     // enable/disable watching file and executing tests whenever any file changes 
     autoWatch: false, 


     // start these browsers 
     // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 
     browsers: ['PhantomJS'], // 'Chrome', 


     // Continuous Integration mode 
     // if true, Karma captures browsers, runs the tests and exits 
     singleRun: true 
    }) 
} 
+0

У меня есть все мои файлы. Я думаю, что проблема связана с браузером. – Adgezaza

+0

К сожалению, я не использую Browserify, но я видел больше проблем с интеграцией и тестированием. Когда у меня возникли проблемы, я заметил много статей о Browserify и вопросах, поэтому, к сожалению, вам, вероятно, придется продолжать поиск. Извините, я не могу больше помочь. –