файлы покрытия кармы не создаются, пока singleRun = true

Я использую Karma для запуска своих модульных тестов и сейчас пытаюсь включить karma-coverage в свой процесс. Я использую PhantomJS для запуска тестов с singleRun: true. Всякий раз, когда я это делаю, мой репортер покрытия кода не работает. Если я установлю singleRun: false, папка и файлы будут созданы.

Почему не работает инструмент покрытия кармы?

Вот мой файл конфигурации:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['mocha', 'requirejs', 'sinon-chai'],
    files: [
     { pattern: 'bower_components/angular/angular.js', included: false },
     { pattern: 'bower_components/jquery/dist/jquery.js', included: false },
     { pattern: 'bower_components/angular-mocks/angular-mocks.js', included: false },
     { pattern: '**/*.js', included: false },
     { pattern: 'KarmaTests/test-main.js', included: true },
     { pattern: 'KarmaTests/**/*Test*.js', included: false }
    ],

    preprocessors: {
        'KarmaTests/*/*.js': ['coverage']
    },

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

    coverageReporter: {
        type: 'html',
        dir: '_testCoverage/',
        file: 'cover.html'
    },

    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
        autoWatch: true,

        browsers: ['PhantomJS'],

        //files are created when false, are not when true
        singleRun: false
    });
};

person gwin003    schedule 13.10.2014    source источник
comment
Какую версию karma вы используете?   -  person MarcoL    schedule 15.10.2014


Ответы (1)


Препроцессор предназначен для отображения исходных файлов, а не тестовых файлов. Сделайте следующее:

  • Измените шаблон препроцессора на:

        preprocessors: {
          '/**/*.js': ['coverage']
        },
    
  • И добавьте файлы JS в тестовое сопоставление:

        { pattern: '**/*.js', included: true }
    
  • Перезапустите карму и просмотрите результаты

person Paul Sweatte    schedule 16.07.2015