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