ember.js - 更新 ember 和依赖项后,Ember 附加随机测试失败并显示“无法调用 `.lookup` 后所有者已被销毁”
问题描述
我更新了我的附加组件的依赖项和 ember 版本以使用 octane(遵循 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-qunit-nice-errors": "^1.2.0",
"ember-qunit-source-map": "^1.2.0",
"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);
推荐阅读
- flutter - Flutter design YoutTube playlist UI
- javascript - 如何让 socket.io 只在 localhost 上监听
- android-studio - Flutter downgrade and no connected device
- loops - 循环批处理文件,用于将来自不同文件夹的多个文本文件合并到另一个不同文件夹中的一个文本文件
- javascript - 等待状态在 vuex 中加载
- python - 从 Mac 终端安装了一个模块 PyInputPlus,但 atom IDE 找不到它
- javascript - 使用 MediaDevices API 的 getDisplayMedia() 的完整网页截图
- list - 在 Flutter 中,如何创建一个 *empty* 二维类数组?
- node.js - 猫鼬模式上的未定义字段
- iot - Contiki-NG 是否支持 Rime 协议,还是有类似的协议?