繁体   English   中英

向业报覆盖(伊斯坦布尔)代码覆盖率预处理器中添加角度控制器

[英]Add angular controllers to karma-coverage (Istanbul) code coverage preprocessor

这是我的项目的设置方式:

project/
  assets/
    js/
      app.js
      services.js
      directives.js
      controllers/
        FooCtrl.js
        BarCtrl.js
    css/
    images/
  test/
    unit/
      controllers/
        controllerSpec.js

我正在努力将js/下的所有文件添加到karma-coverage的preProcessor指令中。

这样做

preprocessors: {
  '**/assets/js/*.js': ['coverage'],
},

仅针对直接在assets/js/下的文件生成覆盖率报告,而不会针对assets/js/controllers/下的文件生成覆盖率报告。

指定单个控制器:

preprocessors: {
   '**/assets/js/controllers/FooCtrl.js': ['coverage'],
},

只是说“没有数据可显示”。

最后,只需执行通配符:

preprocessors: {
   '**/*.js': ['coverage'],
},

显示直接在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']
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM