开发者问题收集

错误单元测试 Angular 8 / Jasmine / Karma:RangeError:超出最大调用堆栈大小

2019-10-09
2190

我正在使用 Jasmine 对我的 Angular 应用进行单元测试,有时 Karma 窗口中会出现以下错误。我找不到它的来源,因为它在重新加载时大约发生 1/5 次。它发生在监视模式下。有什么线索吗?

zone.js:202 Uncaught RangeError: Maximum call stack size exceeded
      at RegExp.exec (<anonymous>)
      at Array.<anonymous> (VM2578 browser-source-map-support.js:110)
      at VM2578 browser-source-map-support.js:102
      at d (VM2578 browser-source-map-support.js:103)
      at q (VM2578 browser-source-map-support.js:106)
      at VM2578 browser-source-map-support.js:107
      at Array.map (<anonymous>)
      at Function.w [as prepareStackTrace] (VM2578 browser-source-map-support.js:107)
      at VM2580 jasmine.js:897
      at onerror (VM2580 jasmine.js:3199)

大多数情况下,在重新加载 karma 窗口一次后,测试集会再次运行并且正常运行。

2个回答

使用选项 ng test --source-map=false 可以防止错误发生,但不是永久的解决方案,因为它显然只是禁用源映射并使堆栈跟踪无用。

在 ci 中使用此选项可以防止测试失败。

Jeremias Nater
2022-01-24

我自己也遇到了这个问题,通过在引发错误的特定规范文件中导入路由模块设法解决了它。

thejabbernaut
2019-12-04