我怎样才能将业力测试与其他 Angular 组件放在同一个文件夹中,并让它们最后运行



>假设我有一个项目目录,看起来像这样:

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

规范文件是业力测试。

等级库文件与 Angular 组件位于同一文件夹中

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

使用 Gulp,编写一个 glob 会很容易,如下所示:

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

然而,这在业力中不起作用。如果我这样做:

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

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

问题

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

如果要避免创建另一个文件夹,请尝试以下方法:

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

你的业力文件应该只有:

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

因为您想使用js文件夹中的所有 JavaScript 文件

我今天刚刚发现了与你的问题有关的东西。我看了一下官方的 Angular-seed GitHub 存储库,他们的 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'
],

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

相关内容

最新更新