2015-03-19 2 views

ответ

35

Здесь вы можете использовать несколько методов: karma использует minimatch globs для путей к файлам, и использование может воспользоваться этим, чтобы исключить некоторые пути.

В качестве первого решения, я бы сказал, попробовать добавить только путь к файлу для предварительной обработки с охватом:

// karma.conf.js 
module.exports = function(config) { 
    config.set({ 
    files: [ 
     'src/**/*.js', 
     'test/**/*.js' 
    ], 

    // coverage reporter generates the coverage 
    reporters: ['progress', 'coverage'], 

    preprocessors: { 
     // source files, that you wanna generate coverage for 
     // do not include tests or libraries 
     // (these files will be instrumented by Istanbul) 
     'src/**/*.js': ['coverage'] 
    }, 

    // optionally, configure the reporter 
    coverageReporter: { 
     type : 'html', 
     dir : 'coverage/' 
    } 
    }); 
}; 

Один выше пример по умолчанию карма-покрытия, и это показывает, что только те, файлы в папке src будут предварительно обработаны.

Другой трюк может быть использовать оператор ! исключить конкретные пути:

preprocessors: { 
    // source files, that you wanna generate coverage for 
    // do not include tests or libraries 
    'src/**/!(*spec|*mock).js': ['coverage'] 
}, 

Один выше делает прогон покрытия только на те файлы JavaScript, которые не заканчиваются spec.js или mock.js. То же самое можно сделать для папок:

preprocessors: { 
    // source files, that you wanna generate coverage for 
    // do not include tests or libraries 
    'src/**/!(spec|mock)/*.js': ['coverage'] 
}, 

Не обрабатывать любые файлы Javascript в папке spec или mock.

+0

yup, это именно то, что мне нужно, спасибо за помощь. –

+3

Совет: это исключит все спецификации и макеты папок, если они находятся в папках src/spec и src/mock, а затем используйте вот так: '' src /! (Spec | mock)/**/*. Js ': [ 'охват'] ' –