xbo*_*nez 1 javascript code-coverage angularjs karma-runner istanbul
这就是我的项目设置方式:
project/
assets/
js/
app.js
services.js
directives.js
controllers/
FooCtrl.js
BarCtrl.js
css/
images/
test/
unit/
controllers/
controllerSpec.js
Run Code Online (Sandbox Code Playgroud)
我正在努力将所有文件添加js/到karma-coverage的preProcessor指令中.
这样做
preprocessors: {
'**/assets/js/*.js': ['coverage'],
},
Run Code Online (Sandbox Code Playgroud)
仅为文件直接生成覆盖率报告,assets/js/但不为其下的文件生成assets/js/controllers/.
指定单个控制器:
preprocessors: {
'**/assets/js/controllers/FooCtrl.js': ['coverage'],
},
Run Code Online (Sandbox Code Playgroud)
只是说'没有要显示的数据'.
最后,只是做一个通配符:
preprocessors: {
'**/*.js': ['coverage'],
},
Run Code Online (Sandbox Code Playgroud)
直接下的所有文件显示的数据assets/js/,test/unit/controllers/ test/lib/等等,但它仍然拒绝显示任何覆盖数据assets/js/controllers/.
我发誓StackOverflow有一些神奇的东西.我花了一个小时让它上班,放弃,发布了这个问题,2分钟后才发现它.
我犯了将文件从files数组移动到preprocessors指令的错误.要获取某个文件的代码覆盖率,它需要位于两个位置,files数组和preprocessors.
我的最终配置如下:
files : [
//3rd Party Code
'bower_components/angular/angular.js',
'bower_components/angular-route/angular-route.js',
'bower_components/angularjs-scope.safeapply/src/Scope.SafeApply.js',
//App-specific Code
'assets/js/app.js',
'assets/js/services.js',
'assets/js/directives.js',
'assets/js/resources.js',
'assets/js/controllers/*.js',
//Test-Specific Code
'node_modules/chai/chai.js',
'test/lib/chai-should.js',
'test/lib/chai-expect.js'
],
preprocessors: {
'**/assets/js/*.js': ['coverage'],
'**/assets/js/controllers/*.js': ['coverage']
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1611 次 |
| 最近记录: |