2014-11-06 12 views
5

Nel mio codice ho var es = require('event-stream');Come ignorare i file richiesti in node.js dalla copertura istanbul

e nel mio package.json, ho

"scripts": { 
    "test": "istanbul cover ./node_modules/mocha/bin/_mocha -- -R spec", 
} 

voglio solo per coprire il mio file principale, tuttavia copre anche i file di event-stream così ottengo cose come

=============================== Coverage summary =============================== 

Statements : 24.74% (757/3060) 
Branches  : 5.42% (88/1625) 
Functions : 15.56% (70/450) 
Lines  : 25.37% (735/2897) 
================================================================================ 

C'è un modo per coprire solo il mio codice?

risposta

2

non importa, l'ho capito.

Che cosa ha detto il khansolo, ma quando l'ho provato, non ha funzionato.

Il problema è quando utilizzo il modulo sandboxed. Che fa sì che qualsiasi funzione non derisa faccia parte della copertura.

var es = require('event-stream'); 
var main = SandboxedModule.require('../main', { 
    requires: { 
     'gulp-s3': gulpS3, 
     'knox': faux, 
     'event-stream': es 
    } 
}); 

Eseguendo questo tipo di Pseudo-derisione per il test. Possiamo mantenere la copertura in esclusiva per il nostro file e non per "event-stream".

1

Istanbul permette di dire che ignorare codice con commenti specifici, sotto forma

/* istanbul ignore <word>[non-word] [optional-docs] */ 

Quindi, è possibile ignorare una dichiarazione require() in questo modo:

/* istanbul ignore next */ 
var es = require('event-stream'); 

Il cruft generato in base alla dichiarazione richiesta, il report di copertura verrà visualizzato in grigio e non incluso nei totali. Vedere la documentazione per maggiori informazioni: https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md

+0

will_wow questo non sembra funzionare per me. Ottengo rapporti di copertura identici quando si usano commenti come quando no. Qualcun altro ha trovato soluzioni? – BrassApparatus

Problemi correlati