所以,这是我的第一个项目,我正在使用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,所以我不明白其他人是如何面对的同样的问题在这里.