首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为提供RangeError的jasmine修改了JUnit xml报告器:超出了最大调用堆栈大小

问为提供RangeError的jasmine修改了JUnit xml报告器:超出了最大调用堆栈大小
EN

Stack Overflow用户
提问于 2019-05-31 21:57:28
回答 1查看 116关注 0票数 1

我使用的是经过修改的Jasmine JUnit报告版本(可在此处找到:https://github.com/angular/protractor-cookbook/tree/master/jasmine-junit-reports),并收到RangeError: Maximum call stack size exceeded的错误信息

我修改报告的原因是我需要在suiteDone步骤生成的报告,而不是jasmineDone步骤。所以基本上我把所有的代码从jasmineDone移到了suiteDone函数中,这导致了我看到的错误。我对js比较陌生,所以不太确定是不是有异步问题或者类似的问题。

这是堆栈跟踪和相关的代码:

代码语言:javascript
复制
- RangeError: Maximum call stack size exceeded
        at getSuite (C:\Users\AutomationUser\application\admin\adminui\e2e\common-pages\reporter.js:248:26)
        at exportObject.QmetryReporter.self.suiteDone (C:\Users\AutomationUser\application\admin\adminui\e2e\common-pages\reporter.js:312:21)
        at exportObject.QmetryReporter.self.suiteDone (C:\Users\AutomationUser\application\admin\adminui\e2e\common-pages\reporter.js:322:22)

getSuite函数(第248行):

代码语言:javascript
复制
function getSuite(suite) {
    __suites[suite.id] = extend(__suites[suite.id] || {}, suite);
    return __suites[suite.id];
}

suiteDone函数块:

代码语言:javascript
复制
self.suiteDone = function (suite) {
    suite = getSuite(suite); // this is line 312 from stacktrace
    if (suite._parent === UNDEFINED) {
        // disabled suite (xdescribe) -- suiteStarted was never called
        self.suiteStarted(suite);
    }
    suite._endTime = new Date();
    currentSuite = suite._parent;
    // below this line is the start of jasmineDone function that I moved into this function
    if (currentSuite) {
        // focused spec (fit) -- suiteDone was never called
        self.suiteDone(fakeFocusedSuite); // this is line 322 from stacktrace
    }

这个问题似乎只有在运行更大的测试规范分组时才会发生。如果只运行一个测试文件,我就不会得到这个问题。

EN

回答 1

Stack Overflow用户

发布于 2019-05-31 22:12:51

我已经遇到过很多次了。对我来说有效的解决方案是使用increase-memory-limit包。只需全局安装它,然后在项目的根目录( package.json所在的位置)运行increase-memory-limit即可。应该在安装完所有依赖项之后并在开始测试之前运行此命令。您将看到一组类似于以下内容的输出

代码语言:javascript
复制
'~/app/node_modules/.bin/webdriver-manager' written successfully.
'~/app/node_modules/.bin/webdriver-manager.cmd' written successfully.
'~/app/node_modules/.bin/webpack' written successfully.
'~/app/node_modules/.bin/webpack-cli' written successfully.
'~/app/node_modules/.bin/webpack-cli.cmd' written successfully.
'~/app/node_modules/.bin/webpack-dev-server' written successfully.
'~/app/node_modules/.bin/webpack-dev-server.cmd' written successfully.
'~/app/node_modules/.bin/webpack.cmd' written successfully.
'~/app/node_modules/.bin/which' written successfully.
'~/app/node_modules/.bin/which.cmd' written successfully.

在此之后,您应该不会再看到此错误。我的完整回归套件非常大,当我试图一次运行所有完整套件时,我总是看到相同的错误。上面的打包包帮我修复了它,自从我开始使用它以来,我还没有遇到过任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56396498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档