phantomjs - 如何使用 karma 和 phantomjs 解决内存错误

标签 phantomjs karma-runner karma-jasmine

我们正在使用 karma 运行测试和 phantomjs上周,我们的测试神秘地开始使 phantomJS 崩溃,错误为 -1073741819。

Based on this thread for Chutzpah 代码似乎表明 PhantomJS 存在 native 内存故障。

经过进一步调查,我们一直在看到大约 750MB 内存的幻影崩溃。

有没有办法配置 Karma 使其不会超出此限制?或者一种方法来告诉它冲洗幻象?

到目前为止,我们只有大约 1200 个测试。我们的项目已经完成了大约 1/4,所以 5000 个 UI 测试似乎不是不可能的。

最佳答案

在使用 PhantomJS 1.9.18 在 Windows 10 上进行了大约 1037 次测试后,我也遇到了这个问题。 .

它将显示为 ERROR [launcher]: PhantomJS crashed.在该进程的 RAM 将超过大约 800-850 MB 之后。

这里似乎有一个临时修复:

  • https://github.com/gskachkov/karma-phantomjs2-launcher
  • https://www.npmjs.com/package/karma-phantomjs2-launcher

  • 您可以通过 npm install karma-phantomjs2-launcher --save-dev 安装它

    但是接下来需要在karma.conf.js中使用通过
    config.set({
        browsers: ['PhantomJS2'],
        ...
    });
    

    这似乎运行相同的测试集,而仅使用 250-550 MB RAM 并且没有崩溃。

    请注意,此修复适用于 Windows 和 OS X,但不适用于 Linux(PhantomJS2 二进制文件不会启动)。这会影响到 Travis CI 的推送。

    要在 Debian/Ubuntu 上解决此问题:
    sudo apt-get install libicu52 libjpeg8 libfontconfig libwebp5

    关于phantomjs - 如何使用 karma 和 phantomjs 解决内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27239708/

    相关文章:

    jasmine - 如何在 headless 模式下运行 Jasmine 测试?

    Angular 6 : TypeError: Cannot read property 'scrollIntoView' of null

    javascript - PhantomJS/SlimerJS 无法通过 document.querySelector() 找到元素

    angularjs - 我遇到了 phantomjs 和 karma 问题

    javascript - 如何对调用 getJSON 的 javascript 函数进行单元测试

    javascript - 使用 Karma 读取静态文件

    javascript - Protractor - 我可以使用 $$(elementLocator).first() 来表示更多元素,例如第二个、第三个等......?

    javascript - Angular Directive(指令)隔离范围单元测试失败

    javascript - 无法点击 CasperJS 的链接

    javascript - PhantomJs:如何停止重定向到另一个 URL 并加载原始 URL