如何解决更新 ember 和依赖项后,Ember 附加随机测试失败,并显示“所有者被销毁后无法调用 `.lookup`”
我更新了附加组件的依赖项和 ember 版本以使用辛烷(遵循 ember 指南)。附加组件像以前一样正常工作,但不是测试。单个随机测试(并不总是相同的测试)失败,如果我自己重新运行单个测试,它就会通过。随机测试失败错误总是一样的:
Can not call `.lookup` after the owner has been destroyed.
我也试过运行测试相关的代码模块,但是除了前面提到的随机测试错误之外,这导致了更多的错误,所以我恢复了代码模块。 (我计划更新测试以使用最新样式,但如果可能的话,我宁愿单独做这件事)。
如果您能提供有关此错误发生原因或如何摆脱它的任何信息,我将不胜感激。
如果有帮助,我最初将这些作为依赖项的一部分(更新之前):
"ember-cli": "~3.0.4","ember-source": "~3.0.0","ember-cli-pretender": "1.0.1","ember-cli-qunit": "^4.3.2","ember-native-dom-helpers": "^0.6.2","ember-qunit-assert-helpers": "0.2.1","ember-qunit-nice-errors": "^1.2.0","ember-qunit-source-map": "^1.2.0","ember-sinon": "^2.1.0","ember-sinon-qunit": "^3.1.0","ember-test-selectors": "^0.3.9”,
我现在将这些作为依赖项的一部分(更新后):
"ember-cli": "~3.23.0","ember-source": "~3.23.1","ember-cli-pretender": "4.0.0","ember-native-dom-helpers": "^0.6.3","ember-qunit": "^4.6.0","ember-qunit-assert-helpers": "0.2.2","ember-sinon": "^5.0.0","ember-sinon-qunit": "^5.0.0","ember-test-selectors": "^5.0.0","qunit-dom": "^1.6.0”,
解决方法
就我而言,我在“afterModel”中使用了 setTimeout,路由的“this”被破坏(因此 .lookup 无法提供服务)
setTimeout(() => {
this.splashScreen.hide();
},500);
为了解决我将“this”从 setTimeout 中移出的问题
const splashScreen = this.splashScreen;
setTimeout(() => {
splashScreen.hide();
},500);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。