编程语言
首页 > 编程语言> > javascript – 在同一位置使用文件和测试的Karma覆盖

javascript – 在同一位置使用文件和测试的Karma覆盖

作者:互联网

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

我安装了所有必要的模块,但我认为这与我在“预处理器”对象中包含文件的方式有关.

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

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

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

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

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

解决方法:

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

标签:javascript,karma-runner,karma-jasmine
来源: https://codeday.me/bug/20190708/1402617.html