Что это за ошибка DalekJS, когда я пытаюсь запустить тест через PhantomJS?

Каждый раз, когда я пытаюсь запустить тест с помощью PhantomJS, Dalek выдает мне эту ошибку. Однако при использовании GoogleChrome тест выполняется правильно.

Running tests

/Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273

this.spawned.kill('SIGTERM');

            ^



TypeError: Cannot read property 'kill' of null

  at Object.PhantomJSDriver.kill (/Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273:17)

  at EventEmitter.emit (/Users/user/node_modules/dalekjs/node_modules/eventemitter2/lib/eventemitter2.js:312:17)

  at Object.Dalek._shutdown (/Users/user/node_modules/dalekjs/lib/dalek.js:346:24)

  at emitOne (events.js:77:13)

  at process.emit (events.js:169:7)

  at process._fatalException (node.js:211:26)

В чем может быть проблема?

Обратите внимание, что я использую OS X 10.10.5 и новичок в автоматизации тестирования Dalek и JS. Спасибо!


person cyrfandli    schedule 22.09.2015    source источник


Ответы (3)


Просто столкнулся с этой проблемой и, прочитав некоторое время, перешел к следующим шагам:

  1. Выполните установку DalekJS, как было предложено.
  2. npm install phantom phantomjs -g
  3. Проверьте запущенную установку phantomJS phantomjs -v
  4. (необязательно) снова запустите dalek, чтобы увидеть, как он терпит неудачу
  5. Найдите локальные установки phantomjs, работающие
    find . -name 'phantom*', и определите зависимость от phantomjs dalek.
  6. Удалить запущенную зависимость phantomjs dalek
    rm -fr ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
  7. Скопируйте недавно установленный phantomJS в только что удаленный путь с запущенным
    cp -r /usr/local/lib/node_modules/phantomjs ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
  8. Запустите dalek еще раз, и ваши тесты должны работать.

Надеюсь, поможет. С наилучшими пожеланиями.

person JSantaCL    schedule 26.05.2016

Похоже, что в dalek-browser-phantomjs отсутствуют некоторые файлы.

Пропавший folders/files are from dalek-browser-phantomjs/node-modules/phantomjs/lib

Если вы устанавливаете только фантомные файлы (npm install phantomjs), вы получаете файл с именем "location.js" + каталог с именем "phantom". Файл location.js содержит путь к phantomjs, а папка фантома содержит двоичный файл.

Эти два отсутствуют, что приводит к ошибке, что для this.spawned установлено значение null, что выдает ошибку dalekjs/node_modules/dalek-browser-phantomjs/index.js:273:17.

Вкратце:

  1. Загрузите последнюю версию phantom.js из npm (npm install phantomjs)
  2. Замените его папкой phantomjs в вашем проекте. Место нахождения:

ваш проект/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/node-modules/

Теперь все ваши тесты должны работать!

person Silicium    schedule 23.02.2016
comment
Ваше решение сработало для меня, просто установив последние версии phantomjs без необходимости изменять и каталоги. - person Errol; 28.03.2016
comment
Это решение также сработало для меня. Я использую Windows 10, Node 4.4.5, DalekJS CLI 0.0.5, DalekJS 0.0.9, PhantomJS 2.1.1. - person Grasshopper; 13.07.2016

Я столкнулся с той же проблемой.

Я полагаю, что проблема может заключаться в том, что ваш каталог «node_modules» создается с правами root.

Итак, на домашней странице DalekJS просто сказано запускать команды установки npm без sudo или root. Первая команда устанавливает модули, вторая команда, однако, настраивает ваш каталог для использования phantomJS — и если вы вызываете вторую команду (npm install dalekjs --save-dev) с привилегиями root, это вызовет проблемы.

So:

  1. Установите пакеты: sudo npm install dalek-cli -g
  2. Настройте свой каталог с помощью файла «package.json» по умолчанию — похоже, вы уже сделали 1 и 2
  3. Затем откройте CLI/терминал и перейдите в каталог с вашим package.json и каталогом «tests».
  4. Выполните следующую команду npm БЕЗ привилегий ROOT/SUDO: `npm install dalekjs --save-dev' (приходилось делать подобное в Ubuntu). Однако проблема, с которой я сталкиваюсь, заключается в том, что команда npm зависает - задокументировано здесь на Github

Это сработало для меня на OS X, и я не смог найти исправление где-либо еще, поэтому решил опубликовать... Надеюсь, это поможет!

person Selly    schedule 12.10.2015
comment
npm install dalekjs --save-dev не работает... т.е. установка приостановлена ​​во время установки phantomjs. Есть идеи ? Я использую ОС Х - person codevscolor; 28.10.2015
comment
Эй, @Selly, как ты решил шаг 4? Проблемы Github не выглядят так, как будто они действительно решены. Я не могу установить dalek без sudo... - person dooburt; 26.11.2015
comment
Уит Силликум сказал :) - person Selly; 20.05.2016