javascript – 在同一位置使用文件和测试的Karma覆盖
作者:互联网
我正在现有项目中设置业力.我有它正常工作并运行测试,但我似乎无法覆盖工作.
我安装了所有必要的模块,但我认为这与我在“预处理器”对象中包含文件的方式有关.
我的项目是使用下面的文件结构设置的
App
|--js
|-- fileToTest.js
|-- fileToTest.Tests.js
在业力覆盖文档中,它表示在设置覆盖范围时不包括测试或库.我想我想知道如何在最后用“.Tests.js”排除文件.
我的预处理器对象如下所示.有没有办法包含我想要使用glob生成覆盖的文件,或者不幸的是我不得不单独添加这些文件?
preprocessors: {
'./App/**/*.tpl.html' : 'ng-html2js',
'./App/**/*.js': ['coverage']
}
解决方法:
Karma使用https://github.com/isaacs/minimatch来查找文件(这里提到http://karma-runner.github.io/0.12/config/preprocessors.html)所以你可以使用glob.
在我们的项目中,我们只是从各种文件夹添加我们的代码,它并没有那么糟糕:
preprocessors: {
// source files, that you wanna generate coverage for
// do not include tests or libraries
// (these files will be instrumented by Istanbul)
'www/js/controllers/**/*.js': ['coverage'],
'www/js/directives/**/*.js': ['coverage'],
'www/js/filters/**/*.js': ['coverage'],
'www/js/initializers/**/*.js': ['coverage'],
'www/js/services/**/*.js': ['coverage'],
'www/js/services.js': ['coverage']
}
编辑:
对此https://github.com/karma-runner/karma/issues/508的反应
看来这种语法很有效
resources/javascript/**/!(*Spec).js
适用于你
'./App/**/!(*Tests).js': ['coverage']
标签:javascript,karma-runner,karma-jasmine 来源: https://codeday.me/bug/20190708/1402617.html