12

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

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

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

知道为什么会这样吗?

4

5 回答 5

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 子进程因错误退出之前尝试加载下一页似乎还没有达到。我无法找到有关错误代码的任何文档。

于 2014-06-20T20:39:47.250 回答
2

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

于 2014-04-03T22:12:04.977 回答
0

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

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

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

于 2014-09-05T20:38:43.920 回答
0

使用 PhantomJS 为 AngularJS 生成快照。

快照脚本通过一组 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

简而言之:

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

于 2015-03-04T14:31:11.543 回答
-1

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

npm list -g phantomjs你可以检查你的 PhantomJS 版本。

如果您认为它已损坏,只需使用以下命令重新安装它:

npm uninstall phantomjs -g
npm install phantomjs -g
于 2015-05-18T15:19:43.383 回答