如何在与其他Angular组件相同的文件夹中进行Karma测试,并让它们最后运行?

时间:2016-03-22 10:12:59

标签: angularjs karma-jasmine

假设我有一个项目目录,如下所示:

comments.component.js
comments.component.spec.js
comments.controller.js
comments.controller.spec.js
comments.service.js
comments.service.spec.js

spec文件是Karma测试。

spec文件与Angular组件

位于同一文件夹中

出于组织原因,我希望能够将测试放在测试代码旁边。我不想把它放在一个单独的spec文件夹中。

使用Gulp,编写一个glob会很简单,就像这样:

[ '*.js', '!*.spec.js', '*.spec.js' ]

但是,这在Karma中不起作用。如果我这样做:

files: [
  './source/js/**/*.js',
  '!./source/js/**/*.spec.js',
  './source/js/**/*.spec.js'
]

这一行:'!./source/js/**/*.spec.js'不匹配任何文件。

问题

如何编写一个karma.conf.js文件,以便首先包含我的所有角度组件,然后包含我的所有spec文件,而不将所有规范文件隐藏在单独的文件夹中?

3 个答案:

答案 0 :(得分:1)

如果您想避免创建另一个文件夹,请尝试这种方式:

files: [
  './source/js/**/*.service.js',
  './source/js/**/*.component.js',
  './source/js/**/*.controller.js',
  './source/js/**/*.spec.js'
]

答案 1 :(得分:0)

你的业力档案应该只有:

files: [
  './source/js/**/*.js'
]

因为您想要使用js文件夹

中的所有JavaScript文件

答案 2 :(得分:0)

我刚刚发现了与您的问题相关的内容。我看了官方的Angular-seed GitHub repo,他们的Karma配置文件看起来像这样:

files : [
  'app/bower_components/angular/angular.js',
  'app/bower_components/angular-route/angular-route.js',
  'app/bower_components/angular-mocks/angular-mocks.js',
  'app/components/**/*.js',
  'app/view*/**/*.js'
],

因此,您似乎不必关心首先包含源代码,并且在"文件的末尾包含测试文件"阵列。 这是链接:https://github.com/angular/angular-seed/blob/master/karma.conf.js