2017-05-05 1 views
0

J'utilise Karma pour écrire les cas de tests unitaires JS et Istanbul pour obtenir le rapport de couverture. Mon fichier karma.conf.js est comme ci-dessous -Je souhaite utiliser plus d'un type de rapport de couverture à l'intérieur de karma.conf.js

// karma.conf.js 
module.exports = function(config) { 
    config.set({ 
    files: [ 
     '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) 
     'test/**/*.js': ['coverage'] 
    }, 

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

ici à l'intérieur coverageReporter Je veux utiliser le type 'html' et 'lcov'. Pour ce faire, je l'ai changé comme ci-dessous -

coverageReporter: { Type: 'html', 'lcov', dir: 'couverture /' }

J'exécuté karma start karma.conf.js mais faire exception ci-dessous - -

C:\abc\npm-1.4.9>karma start karma.conf.js 
05 05 2017 16:57:00.369:ERROR [config]: Invalid config file! 
    C:\abc\npm-1.4.9\karma.conf.js:45 
     type : 'html','lcov', 
         ^
SyntaxError: Unexpected token , 
    at createScript (vm.js:53:10) 
    at Object.runInThisContext (vm.js:95:10) 
    at Module._compile (module.js:543:28) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:488:32) 
    at tryModuleLoad (module.js:447:12) 
    at Function.Module._load (module.js:439:3) 
    at Module.require (module.js:498:17) 
    at require (internal/module.js:20:19) 

Toute aide est très appréciée.

Répondre

0

Vous devez utiliser une configuration avec cette structure pour la propriété coverageReporter:

coverageReporter: { 
    // specify a common output directory 
    dir: 'coverage/', 
    reporters: [ 
    // reporters not supporting the `file` property 
    { type: 'html', subdir: '.' }, 
    { type: 'lcov', subdir: '.' }, 

    ] 
} 

Ceci est décrit dans le readme de-couverture karma.

+0

Cela a fonctionné, mais a un effet secondaire. J'ai mentionné deux navigateurs dans karma.conf.js (Chrome et PhantomJs) donc normalement le rapport est généré pour chaque navigateur séparément mais au-dessus de config ignore la configuration du navigateur. Des pensées à ce sujet ??? - –

0

exemple Essayez ci-dessous:

coverageReporter: { 
    reporters: [ 
     {type: 'html', dir: 'html-coverage'}, 
     {type: 'lcov'} 
    ] 
} 
+0

Ohh l'ai eu ... donc j'ai toujours besoin de les ajouter dans une combinaison de type et dir à l'intérieur des accolades pour chaque type de reporter. Et j'ai remarqué une chose de plus si nous ne mentionnons aucun répertoire puis par défaut il crée le répertoire 'coverage' et renseigne tout à l'intérieur. Merci, @Vlad !!! –

+0

@ArvindMaurya Vous êtes les bienvenus :) –