Карма не может захватить PhantomJS

Мы настроили сервер Jenkins CI под управлением Karma, ориентированный на PhantomJS. Мы проводим наши тесты через Grunt. Дженкинс, Грант и Фантом работают правильно, и Карма, кажется, запускается нормально, но Карма не может захватить Фантома. Наши скрипты работают локально (OSX) просто отлично. Та же ошибка существует при запуске через bash или через Jenkins:

Running "karma:jenkins-unit" (karma) task
[2013-07-03 11:03:12.168] [WARN] config - urlRoot normalized to "/__karma/"
DEBUG [reporter]: Using reporter "dots".
DEBUG [reporter]: Using reporter "junit".
DEBUG [reporter]: Using reporter "coverage".
INFO [karma]: Karma server started at http://localhost:8084/__karma/
INFO [launcher]: Starting browser PhantomJS
DEBUG [launcher]: Creating temp dir at /tmp/testacular-7720703
DEBUG [launcher]: phantomjs /tmp/testacular-7720703/capture.js
INFO [karma]: To run via this server, use "karma run --runner-port 9104"
...
WARN [launcher]: PhantomJS have not captured in 60000 ms, killing.
DEBUG [launcher]: Process PhantomJS exitted with code 0
DEBUG [launcher]: Cleaning temp dir /tmp/testacular-7720703
INFO [launcher]: Trying to start PhantomJS again.
DEBUG [launcher]: Creating temp dir at /tmp/testacular-7720703
DEBUG [launcher]: phantomjs /tmp/testacular-7720703/capture.js
WARN [launcher]: PhantomJS have not captured in 60000 ms, killing.
DEBUG [launcher]: Process PhantomJS exitted with code 0
DEBUG [launcher]: Cleaning temp dir /tmp/testacular-7720703
INFO [launcher]: Trying to start PhantomJS again.
DEBUG [launcher]: Creating temp dir at /tmp/testacular-7720703
DEBUG [launcher]: phantomjs /tmp/testacular-7720703/capture.js
WARN [launcher]: PhantomJS have not captured in 60000 ms, killing.
DEBUG [launcher]: Process PhantomJS exitted with code 0
DEBUG [karma]: PhantomJS failed to capture, aborting the run.
DEBUG [launcher]: Disconnecting all browsers
DEBUG [launcher]: Killing PhantomJS
DEBUG [launcher]: Cleaning temp dir /tmp/testacular-7720703
Warning: Task "karma:jenkins-unit" failed. Use --force to continue.

Наш сервер CentOS 6.4.

Вот версии, которые у нас есть: grunt-cli v0.1.9 grunt v0.4.1 node 0.10.12 и 0.8.25. фантомы 1.9.1 карма 0.8.6

Любая помощь приветствуется!


person sak_to    schedule 03.07.2013    source источник
comment
У меня совершенно другая настройка, чем у вас, но когда я получил ошибку PhantomJS failed to capture, оказалось, что локальный хост не соответствует 127.0.0.1. Это то, что может вызвать эту ошибку.   -  person mcv    schedule 14.04.2014


Ответы (2)


Используйте опрос вместо сокетов и абсолютные пути вместо относительных путей в файле конфигурации karma.conf.js, чтобы убедиться, что структура каталогов проходится правильно, а соединение клиент/сервер не имеет внешних зависимостей:

module.exports = function(config) 
  {
  var absolute_root = process.cwd() + '/';
  config.set
  (
    {
    // https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],

    // list of files

    files: 
       [
       absolute_root + 'test/Spec/**/*.js',
       absolute_root + 'js/*.js',
       absolute_root + '../libs/jquery.js'
       ],

     usePolling: true,

     transports: ['xhr-polling', 'jsonp-polling'],

     browsers: ['PhantomJS']
    }
  );
  };

Ссылки

person Paul Sweatte    schedule 15.04.2015

В моем случае добавление

transports: ['xhr-polling', 'jsonp-polling']

до karma.conf.js было достаточно. Настоящей проблемой была очень старая версия кармы (0.12). Сейчас с 1.4. Мне не нужен опрос, потребляющий процессор.

person Porteano    schedule 26.04.2017