Предположим, у меня есть каталог проекта, который выглядит примерно так:
comments.component.js
comments.component.spec.js
comments.controller.js
comments.controller.spec.js
comments.service.js
comments.service.spec.js
Файлы спецификаций - это тесты Karma.
По организационным причинам я хочу, чтобы мои тесты были рядом с тестируемым кодом. Я не хочу откладывать его в отдельной папке спецификации.
С Gulp создание глобуса было бы легко, примерно так:
[ '*.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'
]
Я только что обнаружил что-то, связанное с вашим вопросом сегодня. Я заглянул в официальный реверс 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'
],
Так что вам не нужно заботиться о том, чтобы сначала включить исходный код и файлы тестов в конце массива "файлы". Вот ссылка: https://github.com/angular/angular-seed/blob/master/karma.conf.js
Ваш файл кармы должен быть только:
files: [
'./source/js/**/*.js'
]
потому что вы хотите использовать все файлы JavaScript внутри вашей папки js