【问题标题】:PhantomJS exited unexpectedly with exit code -1073741819PhantomJS 意外退出,退出代码为 -1073741819
【发布时间】:2013-08-17 20:09:00
【问题描述】:

我在 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.

如果我删除一堆测试,错误不会出现;但是我不知道是什么导致了错误。

我也觉得奇怪,它只是偶尔发生。

知道为什么会这样吗?

【问题讨论】:

  • 您是否有像 McAfee 一样运行的可以扫描脚本的防病毒应用程序?或者文件可以在多个应用程序中打开?

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


【解决方案1】:

我们正在通过 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 行。 我希望它对你也一样简单!

【讨论】:

    【解决方案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 列表,并且我“随机”在列表中的某个位置遇到此崩溃。我想我已经将其追溯到使用 bridge.js 脚本启动 phantom.exe 的子进程 spawn 调用。在 phantom.exe 子进程因错误退出之前尝试加载下一页似乎还没有达到。我还没有找到关于错误代码的任何文档。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        使用 PhantomJS 为 AngularJS 生成快照。

        snapshots 脚本会遍历一组 url,它必须对这些 url 进行快照。

        缩小到可能的原因,结果发现我在 AngularJS 中的最新修复中有一个错误。这个bug导致首页和出错的页面不断切换。

        代码可视化:

        $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 不兼容或损坏时,也会显示警告 PhantomJS exited unexpectedly with exit code -1073741819

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

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

          npm uninstall phantomjs -g
          npm install phantomjs -g
          

          【讨论】:

            猜你喜欢
            • 2016-08-11
            • 1970-01-01
            • 2021-09-10
            • 2015-02-18
            • 2016-09-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多