PhantomJS неожиданно вышел с кодом выхода -1073741819

Я запускаю кучу спецификаций Jasmine с PhantomJS (через Grunt) на ПК с Windows 7, и я получаю следующую ошибку:

Testing jasmine specs via phantom
......
Running PhantomJS...ERROR
>> 0 [ '' ]
Warning: PhantomJS exited unexpectedly with exit code -1073741819. Use --force to continue.
Aborted due to warnings.

Ошибка, если я удалю кучу тестов; однако я понятия не имею, что вызывает ошибку.

То, что я также нахожу странным, это то, что оно происходит только время от времени.

Любая идея, почему это происходит?

Ответ 1

Мы запускаем тесты AngularJS через жасмин и хрюканье, и эта же проблема. Для нас это оказалось обусловлено нашей специальной $exceptionHandler.

Нам не хватало строки throw exception, которая находится в обработчике примера. Не выбрасывая исключение, тест прошел бы, но он случайно вызвал бы PhantomJS.

Это означает, что некоторые из наших тестов потерпели неудачу, и мы этого не знали!

Здесь обработчик образца на странице $exceptionHandler:

angular.module('exceptionOverride', []).factory('$exceptionHandler', function          () {
  return function (exception, cause) {
    exception.message += ' (caused by "' + cause + '")';
    throw exception; // <--- This is important
  };
});

Поэтому я бы посмотрел, есть ли у вас также настраиваемая обработка исключений и, возможно, отсутствует строка throw exception. Надеюсь, это так же просто, как и для вас!

Ответ 2

(К сожалению, у меня нет ответа. Я бы опубликовал комментарий, но у меня нет репутации.)

Я получаю ту же ошибку, которая пытается создать html-снимки с помощью grunt-html-snapshot.

Running PhantomJS...ERROR
>> 0 [ '' ]
Warning: PhantomJS exited unexpectedly with exit code -1073741819. Use --force to continue.

Aborted due to warnings.

Я кормлю хрюканьем список URL-адресов, и я "случайно" получаю этот крах где-то в списке. Я думаю, что я проследил его до вызова дочернего процесса, который запускает phantom.exe с помощью bridge.js script. Кажется, он не дошел до загрузки следующей страницы до того, как дочерний процесс phantom.exe завершится с ошибкой. Я не смог найти документацию по коду ошибки.

Ответ 3

Я получил то же сообщение об ошибке, что и Helge, после переименования папки и запуска jasmine в grunt.

В папке содержались все файлы JavaScript, которые я хотел бы преобразовать в один файл, и переименовал папку в соответствии с окончательным именем файла. Например, папка \src\modules\ была переименована \src\modules.js\.

Удаление .js из имени папки разрешило проблему.

Ответ 4

Использование PhantomJS для создания моментальных снимков для AngularJS.

Снимки script проходят через массив URL-адресов, для которых он должен принимать моментальные снимки.

Сузилось до возможной причины, и, как оказалось, в моем последнем исправлении в AngularJS появилась ошибка. Эта ошибка привела к постоянному переключению домашней страницы и страницы, на которой произошла ошибка.

Визуализация кода:

$state.go('home state');
...
$state.go('an other state');
...
$state.go('home state');
...
$state.go('an other state');
...
$state.go('home state');
...
...
=> Error: PhantomJS exited unexpectedly with exit code -1073741819

Короче:

Для меня эта ошибка вызвана бесконечным циклом перенаправления.

Ответ 5

Предупреждение PhantomJS exited unexpectedly with exit code -1073741819 также отображается, если ваш локальный PhantomJS несовместим или поврежден.

С помощью npm list -g phantomjs вы можете проверить свою версию PhantomJS.

Если вы считаете, что он поврежден, просто переустановите его с помощью:

npm uninstall phantomjs -g
npm install phantomjs -g