Вручную вызвать карму, чтобы повторить тесты
Я знаю, что Карма имеет встроенную autoWatch
опция, которая приведет к повторному запуску моих тестов при изменении файла теста:
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
server.start();
Есть ли способ запустить этот перезапуск вручную? Я хотел бы иметь больше контроля над при повторном запуске моих тестов.
2 ответа
Я узнал немного больше о карме и обнаружил karma.runner.run()
, который запускает уже запущенный сервер (например, сервер Karma, который вы запускали в другом командном окне) для повторного запуска своих тестов. В моем задании глотка я теперь делаю что-то вроде этого:
gulp.task('run-tests', function() {
gulp.watch('/glob/to/my/files').on('change', function() {
karma.runner.run({ configFile: 'karma.conf.js' });
});
});
Обратите внимание, что если вы запустите эту задачу из того же процесса, который породил ваш сервер Karma, вы увидите дублированные результаты теста, поскольку и сервер, и бегун сообщают свои результаты в командную строку. Чтобы показать только один набор результатов тестирования, вы можете запустить сервер Karma в фоновом режиме, используя что-то вроде этого.
Если вам нужно запустить его вручную с помощью gulp, просто создайте из него задачу (я предполагаю, что вы хотите перезапустить server.start):
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
gulp.task('runTests', function() {
server.start();
});
И тогда всякий раз, когда вам нужно запустить тест, запустите в командной строке:
gulp runTests