Подтвердить что ты не робот

Карма не запускает модульные тесты из-за сообщения "Без захваченного браузера"

Я пытаюсь настроить Karma для запуска модульных тестов AngularJS с использованием Jasmine, но я не могу запустить тесты. Я уверен, что я пропускаю что-то простое. Я запускаю это на машине с Windows 7 с установленной Node.js и кармой, установленной через npm.

Моя структура каталогов выглядит так:

  • js/app/- содержит контроллеры, приложение и т.д.
  • js/config/- содержит karma.conf.js
  • js/lib/- содержит angular
  • js/test/- содержит спецификации жасмина

Я запускаю командную строку в каталоге js и запускаю эту команду:

karma start config/karma.conf.js

Это заставляет Chrome работать на порту 9876, но всякий раз, когда я меняю любые просмотренные файлы и проверяю вывод Karma, я вижу это информационное сообщение:

No captured browser, open http://localhost:9876/

Вот мой конфигурационный файл:

module.exports = function(config) {
  config.set({
    basePath: '../',
    frameworks: ['jasmine'],
    files: [
      'lib/angular.js',
      'app/**/*.js',
      'test/**/*.js'
    ],
    exclude: [
    ],
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    captureTimeout: 60000,
    singleRun: false
  });
};

Я использую Angular 1.2.10 и Karma 0.10.9

4b9b3361

Ответ 1

У меня была одна и та же проблема в другой установке (Linux, QUnit, Firefox). Проблема исчезла после того, как я убил все процессы кармы и сделал новый karma start.

Ответ 2

У меня был момент ладони лица. karma start должен быть запущен в том же каталоге, что и ваш файл karma.conf.js.

Ответ 3

Эта ошибка может означать, что браузер не может найти сервер. Убедитесь, что вы можете связаться с сервером по указанному в нем URL. Это может быть неверно сконфигурированный номер порта или даже (как это было в моем случае), localhost неверно сконфигурирован. Я предполагаю, что это может быть сервер не работает или любой из дюжины других проблем.

Проверьте, можете ли вы связаться с сервером вручную. Если вы не можете, исправьте это.

Ответ 4

Это случилось со мной, когда у меня был бесконечный цикл в моем коде. Комментируя (используя xdescribe в жасмине), последний код, который я написал, снова запустил тесты.

Ответ 5

У меня была такая же проблема, никаких изменений кода, просто повторные тесты, которые работали месяц назад.

Когда я бежал от webstorm, мне понадобилось много времени, чтобы захватить браузер, поэтому я подумал, не было ли время ожидания.

Итак, я попытался настроить браузер только на Chrome (я также использовал phantomjs) и ожидал. Затем reset вернуться к Chrome и phantomjs, теперь это нормально.

Ответ 7

У меня была такая же проблема, и я сделал все, что здесь говорили здесь, без каких-либо результатов. В моем случае я не выполнил init:

C:\Users>cd c:\xampp\htdocs\angularjs-pro\ch07

c:\xampp\htdocs\angularjs-pro\ch07>karma init

Which testing framework do you want to use ?
Press tab to list possible options. Enter to move to the next question.
> jasmine

Do you want to use Require.js ?
This will add Require.js plugin.
Press tab to list possible options. Enter to move to the next question.
> no

Do you want to capture any browsers automatically ?
Press tab to list possible options. Enter empty string to move to the next question.
> Chrome

Во второй раз, когда я попал в ту же ситуацию, я пытался это сделать karma start в неправильной папке, а не там, где я положил karma init.

В обоих случаях после исправления проблемы я попал в консоль вдов:

22 11 2016 14:06:51.697:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
22 11 2016 14:06:51.698:INFO [launcher]: Launching browser Chrome with unlimited concurrency
22 11 2016 14:06:51.711:INFO [launcher]: Starting browser Chrome
22 11 2016 14:06:53.936:INFO [Chrome 54.0.2840 (Windows 10 0.0.0)]: Connected on socket /#HnJUQrkRPqtGFa5ZAAAA with id 16058274

Ответ 8

Установка karma-cli npm install -g karma-cli решила эту проблему для меня. Надеюсь, это поможет.

Ответ 9

Я использую angular5, и когда scafold запускает проект и скажет ng test, npm install --save-dev karma-phantomjs-launcher,: (

Ответ 10

Я столкнулся с той же проблемой, и я решил ее, убив все экземпляры Chrome из диспетчера задач. Кажется, что было запущено 'n' количество бегунов. Когда вы закрываете тестер кармы, не останавливая сервер, он остается живым.

Поэтому нажмите "alt + ctrl + delete", убейте все сеансы/экземпляры Chrome и перезапустите Karma.

Оно работает!

Ответ 11

Недавно была та же ошибка:

  • проект, использующий angular-cli,
  • тесты на Дженкинсе в безголовой среде.

Оказывается, я ранее отменил задание Jenkins на этапе, на котором выполнялись тесты, поэтому ng test не вышел (имел несколько запущенных процессов ng в паре с процессами [node] <defunct>, блокируя дальнейшее выполнение теста). Решением было найти и убить все зависшие процессы ng:

$ sudo -su jenkins
# ps aux | grep "ng$" | awk '{print $2}' | xargs kill -9

Ответ 12

У меня была такая же проблема, и это была ошибка в тесте. Удаление этого кода исправило ошибку.

Ответ 13

У меня было то же сообщение, потому что на моем компьютере не было установлено Chrome. Просто Хром. Ну, получается, что не то же самое. Теперь после установки Chrome браузеры "Chrome" и "ChromeHeadless" могут запускаться.

В противном случае вы можете указать "Chromium" или "ChromiumHeadless" в конфигурации, и все будет в порядке.

TLDR: убедитесь, что вы действительно установили браузер, в котором тестируете.