PhantomJS意外退出,退出代码为-1073741819

时间:2013-08-15 15:27:27

标签: node.js unit-testing jasmine phantomjs gruntjs

我在Windows 7 PC上使用PhantomJS(通过Grunt)运行了一堆Jasmine规范,我碰巧遇到以下错误:

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.

如果删除一堆测试,则不会出现错误;但是我不知道导致错误的原因。

我也觉得很奇怪,它只是偶尔出现。

知道为什么会这样吗?

5 个答案:

答案 0 :(得分:2)

我们正在通过jasmine和grunt运行AngularJS测试,并遇到了同样的问题。对我们来说,原来是由于我们的自定义$exceptionHandler功能。

我们错过了示例处理程序中的throw exception行。通过不抛出异常,测试将通过,但它将随机导致PhantomJS崩溃。

这意味着我们的某些测试失败了,我们也不知道!

以下是$exceptionHandler documentation page的示例处理程序:

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

所以,我要查看您是否也有自定义异常处理,并且可能缺少throw exception行。 我希望它对你来说也一样简单!

答案 1 :(得分:2)

(可悲的是,我没有答案。我会发表评论,但我没有代表。)

我尝试使用grunt-html-snapshot创建html快照时遇到同样的错误。

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

Aborted due to warnings.

我正在给grunt提供一个URL列表,我随机地&#34;在列表中的某处发生此崩溃。我想我已经将它跟踪到子进程spawn调用,该调用使用bridge.js脚本启动phantom.exe。在phantom.exe子进程退出并出现错误之前,似乎没有尝试加载下一页。我还没能找到有关错误代码的任何文档。

答案 2 :(得分:0)

重命名文件夹并在grunt中运行jasmine后,我收到了与Helge相同的错误消息。

该文件夹包含我想要缩小为一个文件的所有JavaScript文件,我重命名该文件夹以匹配最终文件名。例如,文件夹\src\modules\已重命名为\src\modules.js\

从文件夹名称中删除.js解决了这个问题。

答案 3 :(得分:0)

使用PhantomJS为AngularJS生成快照。

快照脚本通过一组网址,它必须拍摄快照。

缩小到可能的原因,结果发现我最近在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

简而言之:

对我来说,这个错误是由无限重定向循环引起的。

答案 4 :(得分:-1)

当您的本地PhantomJS不兼容或损坏时,也会显示警告PhantomJS exited unexpectedly with exit code -1073741819

使用npm list -g phantomjs,您可以查看PhantomJS版本。

如果您认为它已损坏,只需重新安装:

npm uninstall phantomjs -g
npm install phantomjs -g