【问题标题】:ember install ember-modifier-manager-polyfill ERROR: RangeError: Maximum call stack size exceededember install ember-modifier-manager-polyfill 错误:RangeError:超出最大调用堆栈大小
【发布时间】:2020-11-17 21:25:00
【问题描述】:

安装插件后:ember install ember-modifier-manager-polyfill 仅在 CI 上测试套件失败(如果在本地单独运行每个特定测试 - 测试通过)

以下是关于它的未决状态问题: https://github.com/ember-polyfills/ember-angle-bracket-invocation-polyfill/issues/110 但就我而言,我在模板中没有类似的情况:

{{#each questions as |question|}}
  {{component question.componentName question=question}}
{{/each}}

所以,这是不同的东西......因为失败是系统不同部分的不同测试(集成/验收)

注意事项:

ember-source: 2.18.2
ember-angle-bracket-invocation-polyfill: 2.0.2
jquery: 3.5.1
ember-modifier-manager-polyfill: 1.2.0

这不是重复的: What could be reason of the error 'Maximum call stack size exceeded' inside Ember Data? 或这个: Ember Uncaught RangeError: Maximum call stack size exceeded 但错误信息相同

输出示例:

stack: >
                at DOMAssertions.exists (http://0.0.0.0:4200/assets/test-support.js:24416:16)
                at DOMAssertions.exists (http://0.0.0.0:4200/assets/test-support.js:24737:18)
                at Object._callee$ (http://0.0.0.0:4200/assets/tests.js:141899:45)
                at tryCatch (http://0.0.0.0:4200/assets/vendor.js:6235:40)
                at Generator.invoke [as _invoke] (http://0.0.0.0:4200/assets/vendor.js:6509:22)
                at Generator.prototype.<computed> [as next] (http://0.0.0.0:4200/assets/vendor.js:6268:21)


browser log: |
            ERROR: RangeError: Maximum call stack size exceeded
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72303:51)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)
                at CurlyComponentManager.manager.didCreateElement (http://0.0.0.0:4200/assets/vendor.js:72304:45)

感谢任何帮助

【问题讨论】:

  • 如果我做对了,测试套件在 CI 上失败,但在本地失败。两个常见的原因: 1. 不同的节点版本。 2.不同版本的依赖。要进行调试,我将从:检查ember-modifier-manager-polyfill 和使用的其他插件是否支持 CI 上使用的节点版本。也许尝试在 CI 上使用与本地相同的节点版本,看看它是否通过。您是否使用yarn.lockpackage-lock.json 锁定您的依赖关系,并且该依赖项是否已提交?您是否在本地和 CI 上使用相同的包管理器?在 CI 上安装时,您是否验证过它尊重锁定文件?
  • 当然,打包程序,yarn.lock 肯定需要,只有在本地运行 ember tests 和在 CI 上运行 ember exam 的区别,是的 - 它可以通过 ember 考试在本地重现,这要归功于提高它,我重新检查过,但我仍然不明白原因
  • 如果使用ember exam 而不是ember test 执行测试套件,您是否可以在本地和CI 上重现错误?
  • @jelhan omg,抱歉耽搁了这么久,不知何故我错过了你的评论。是的,在CI=true ember exam --split=32 --partition=12 --parallel 本地,我的测试失败了,原因是ERROR: RangeError: Maximum call stack size exceeded,但是在ember test --filter="Title'S of failed test'S on CI" 运行时,我所有的测试都通过了。
  • @jelhan 顺便说一句,我得到了 ember-source 到 2.16.4 但仍然有这个问题

标签: ember.js polyfills


【解决方案1】:

这个问题在我们的项目中通过使用现代语法重写测试代码库得到解决,因为测试代码库处于迁移状态:一些测试是遗留的,但有些是现代语法。

因此,要解决 - 使用 moduleFor... 弃用测试,例如 moduleForAcceptance

这里提到: https://github.com/ember-polyfills/ember-angle-bracket-invocation-polyfill/issues/110#issuecomment-815088157

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 2021-09-21
    • 2018-02-06
    • 2019-05-14
    • 2021-07-31
    • 2019-02-07
    • 2012-08-14
    相关资源
    最近更新 更多