加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 使用jasmine对karma执行10次以上的测试会导致:“

发布时间:2020-12-17 07:14:16 所属栏目:安全 来源:网络整理
导读:所以,这是我的第一个项目,我正在使用Karma和Jasmine对我的angularJS代码进行单元测试.使用Yeoman角度发生器进行设置. 一旦我进行了11次测试,我就会收到一条错误消息“您的某些测试会进行整页重新加载”.我没有做任何会触发重载的测试. 深入挖掘我看到Github
所以,这是我的第一个项目,我正在使用Karma和Jasmine对我的angularJS代码进行单元测试.使用Yeoman角度发生器进行设置.

一旦我进行了11次测试,我就会收到一条错误消息“您的某些测试会进行整页重新加载”.我没有做任何会触发重载的测试.

深入挖掘我看到Github上引用了同样的问题.
https://github.com/jasmine/jasmine/issues/366 – (FuzzySockets评论)

问题似乎源于jasmine-core中的一行代码
https://github.com/jasmine/jasmine/blob/master/lib/jasmine-core/jasmine.js

为了避免堆栈溢出,maximumSpecCallbackDepth设置为20.每当currentSpecCallbackDepth超过该值时,使用setTimout函数在新堆栈上执行进一步的测试.

这条线似乎会导致问题并使业力抛出错误. (我已经通过在我自己的单元测试中调用setTimeout方法验证了这一点,并且它抛出了相同的错误).

如果将maximumSpecCallbackDepth更改为100,我的测试运行正常,并且最后不会抛出任何错误

有没有人看过这个问题并知道修复?我正在使用最新版本的业力(0.13.15)和茉莉(2.4.1).

我没有真正搞乱使用自动生成的默认grunt或karma配置,除了我使用chrome启动器而不是默认的phantomJS,所以我不明白其他人是如何面对的同样的问题在这里.

解决方法

1对于这个问题.正如你所说,它是由maximumSpecCallbackDepth限制造成的,但到目前为止我没有找到解决这个问题的方法.你可能在这里跟踪问题 https://github.com/karma-runner/karma/issues/1101.

一个临时解决方案是减少项目中嵌套的“describe”块.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读