【问题标题】:Add angular controllers to karma-coverage (Istanbul) code coverage preprocessor将角度控制器添加到 karma-coverage (Istanbul) 代码覆盖预处理器
【发布时间】:2013-12-11 01:49:33
【问题描述】:

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

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/ 的任何覆盖率数据。

【问题讨论】:

    标签: javascript angularjs code-coverage karma-runner istanbul


    【解决方案1】:

    我发誓 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']
    },
    

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 2016-05-23
      • 2016-02-29
      • 2016-06-02
      • 2015-09-10
      • 2019-12-20
      • 2015-12-19
      • 2016-05-27
      相关资源
      最近更新 更多