更新ember和依赖项后,Ember加载项随机测试失败,并显示“Can not call ". lookup "after the owner has destroy”(在所有者已被销毁后无法调用,查找)

gab6jxml  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(80)

我更新了我的插件的依赖项,并更新了ember版本以使用octane(遵循ember指南)。插件和以前一样正常工作,但测试不正常。一个随机测试(不总是相同的测试)失败了,如果我重新运行这个测试,它就通过了。随机测试失败的错误总是相同的:
Can not call.lookupafter the owner has been destroyed.
我也尝试过运行与测试相关的代码mods,但是除了前面提到的随机测试错误之外,这导致了更多的错误,所以我恢复了代码mods。(我计划更新测试以使用最新的样式,但是如果可能的话,我宁愿在单独的工作中这样做)。
我会非常感谢任何信息,为什么这个错误发生,或者我如何可以摆脱它。
如果有帮助的话,我最初将这些作为我的依赖项的一部分(在更新之前):

"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”,
wgx48brx

wgx48brx1#

在我的例子中,我在“afterModel”中使用了setTimeout,路由的“this”被破坏了(所以服务的.lookup失败)

setTimeout(() => {
    this.splashScreen.hide();
}, 500);

为了修复我将“this”移出setTimeout的问题

const splashScreen = this.splashScreen;
setTimeout(() => {
    splashScreen.hide();
}, 500);

相关问题