>假设我有一个项目目录,看起来像这样:
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