2015-03-19 7 views

risposta

35

Qui è possibile utilizzare diverse tecniche: karma utilizza i globi minimatch per i percorsi dei file e l'utilizzo può trarne vantaggio per escludere alcuni percorsi.

Come prima soluzione direi tenta di aggiungere solo i percorsi del file di pre-elaborazione con la copertura:

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

Quello sopra è l'esempio di default nel karma-copertura e si vede che solo quelli i file nella cartella src verranno sottoposti a pre-elaborazione.

Un altro trucco può essere quello di utilizzare l'operatore ! per escludere percorsi specifici:

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

Quello sopra fa girare la copertura solo su quelle file Javascript che non terminano con spec.js o mock.js. Lo stesso può essere fatto per le cartelle:

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

Non elaborare i file Javascript nella cartella spec o mock.

+0

sì, è esattamente ciò di cui avevo bisogno, grazie per l'aiuto. –

+3

Suggerimento: questo escluderà tutte le cartelle spec e mock, se sono nelle cartelle src/spec e src/mock, quindi usare in questo modo: ''src /! (Spec | mock)/**/*. Js': [ 'copertura'] ' –