Как я могу иметь тесты Karma в той же папке, что и другие компоненты Angular, и запускать их в последнюю очередь?

0

Предположим, у меня есть каталог проекта, который выглядит примерно так:

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 таким образом, чтобы все мои угловые компоненты были включены первым, и все мои файлы спецификаций включены далее, не скрывая все мои файлы спецификаций в отдельной папке?

Теги:
karma-jasmine

3 ответа

1

Попробуйте это, если вы хотите избежать создания другой папки:

files: [
  './source/js/**/*.service.js',
  './source/js/**/*.component.js',
  './source/js/**/*.controller.js',
  './source/js/**/*.spec.js'
]
  • 0
    Ну, это функциональное решение, и действительно в меру элегантно :)
  • 0
    Не уверен, что это сработает, но я не понимаю, почему нет. Можете ли вы дать мне отзыв об этом?
Показать ещё 1 комментарий
0

Я только что обнаружил что-то, связанное с вашим вопросом сегодня. Я заглянул в официальный реверс 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

0

Ваш файл кармы должен быть только:

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

потому что вы хотите использовать все файлы JavaScript внутри вашей папки js

  • 0
    Привет @SonnY, да и нет. Порядок включения имеет значение в этом случае. Мне нужно включить все, что соответствует ' * / .spec.js' в последнюю очередь. Как я уже говорил, с Gulp это будет легко, потому что Gulp позволяет вам модифицировать конвейер.
  • 0
    да, но вы не можете включить все в первую очередь, удалить тестовые файлы и повторно включить их.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню