Karma在同一位置覆盖文件和测试

时间:2014-12-12 15:10:51

标签: javascript karma-runner karma-jasmine

我在现有项目中设置业力。我有它正常工作并运行测试,但我似乎无法覆盖工作。

我安装了所有必要的模块,但我认为这与我如何在"预处理器"中包含我的文件有关。对象

我的项目是使用下面的文件结构设置的

App
|--js
  |-- fileToTest.js
  |-- fileToTest.Tests.js

在业力覆盖文档中,它表示在设置覆盖范围时不包括测试或库。我想我想知道如何用" .Tests.js"排除文件。在末尾。

我的预处理器对象如下所示。有没有办法包含我想要使用glob生成覆盖的文件,或者遗憾的是我不得不单独添加这些文件?

preprocessors: {
    './App/**/*.tpl.html' : 'ng-html2js',
    './App/**/*.js': ['coverage']
}

1 个答案:

答案 0 :(得分:1)

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