Я использую Yeoman и generator-angular для управления приложениями AngularJS, но у меня возникают проблемы с автоматическим тестированием.
Запуск grunt test
будет запускать единичные тесты один раз. Я могу получить тесты E2E для запуска после модульных тестов, изменив конфигурационный блок кармы в Gruntfile.js
, добавив e2e:
karma: {
//...
e2e: {
configFile: 'karma-e2e.conf.js',
singleRun: true
}
},
Отлично: теперь, когда я набираю grunt test
, все тесты запускаются. Но они запускаются только один раз, и там большие накладные расходы (запуск компаса, запуск сервера, запуск Chrome-процессов и т.д.). Вместо этого сервер и процессы Chrome должны оставаться в рабочем состоянии, и, когда я сохраняю тест, тесты должны быть повторно запущены.
Я могу добиться этого, изменив как karma.conf.js
, так и karma-e2e.conf.js
и установив singleRun = true
, затем запустив karma start
в одной панели терминала и karma start karma-e2e.conf.js
в другой. Если ни один из портов в конфликте конфигурации кармы (что они делают по умолчанию), это работает. Теперь я обхожу Grunt и просто делаю свое дело (что кажется немного глупым, поскольку Grunt должен облегчить ситуацию).
В любом случае, после нескольких дополнительных изменений (исправлений?) - не уточняется для краткости - это работает, но не режет: теперь мне нужно запустить две разные команды и следить за двумя разными панелями. Конечно, лучший способ.
Как запустить отдельную команду для просмотра моих тестовых файлов и повторного запуска тестов соответствующим образом?
Бонусный вопрос: почему на Земле эта функция не предоставляется, как есть? Это просто вопрос разработчика (разработчиков) генератора angular, не имеющего достаточно времени для реализации этого материала? Я спрашиваю, потому что я просто вхожу в Angular/Yeoman/Karma (как вы, вероятно, заметили), и чувствуете, что автоматическое тестирование как E2E, так и модульных тестов имеет решающее значение для рабочего процесса.