2015-03-19 89 views

回答

35

您可以在这里使用几种技术:karma使用minimatch globes作为文件路径,并且使用可以利用它来排除某些路径。

作为第一个解决方案我想说尝试将文件的唯一路径与覆盖范围添加到预处理:

// 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'] 
}, 

的一个上面,使覆盖范围来看,只有对那些不以spec.jsmock.js结束JavaScript文件。同理也可应用于文件夹来完成:

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

不处理在specmock夹中的任何JavaScript文件。

+0

是的,这正是我所需要的,感谢您的帮助。 – 2015-03-22 00:29:16

+3

提示:如果它们位于src/spec和src/mock文件夹中,则将排除所有spec和mock文件夹,然后使用如下所示:''src /!(spec | mock)/ **/*。js': [ '覆盖']' – 2015-09-09 13:47:09

相关问题