Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将角度控制器添加到karma coverage(伊斯坦布尔)代码覆盖预处理器_Javascript_Angularjs_Code Coverage_Karma Runner_Istanbul - Fatal编程技术网

Javascript 将角度控制器添加到karma coverage(伊斯坦布尔)代码覆盖预处理器

Javascript 将角度控制器添加到karma coverage(伊斯坦布尔)代码覆盖预处理器,javascript,angularjs,code-coverage,karma-runner,istanbul,Javascript,Angularjs,Code Coverage,Karma Runner,Istanbul,以下是我的项目的设置方式: project/ assets/ js/ app.js services.js directives.js controllers/ FooCtrl.js BarCtrl.js css/ images/ test/ unit/ controllers/ controllerSpec.js 我正在努力将js/下的所有文件添

以下是我的项目的设置方式:

project/
  assets/
    js/
      app.js
      services.js
      directives.js
      controllers/
        FooCtrl.js
        BarCtrl.js
    css/
    images/
  test/
    unit/
      controllers/
        controllerSpec.js
我正在努力将
js/
下的所有文件添加到karma coverage的
预处理器
指令中

这样做

preprocessors: {
  '**/assets/js/*.js': ['coverage'],
},
仅为直接位于
资产/js/
下的文件生成覆盖率报告,但不为位于
资产/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 : [
  //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']
},

我发誓StackOverflow有点神奇。我花了一个小时让它工作,放弃了,贴出了这个问题,2分钟后我就明白了

我错误地将文件从
文件
数组移动到
预处理器
指令。要获得某个文件的代码覆盖率,它需要位于两个位置,
文件
数组和
预处理器

我的最终工作配置如下所示:

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