我有一个中等大的Angular项目的单元测试套件,并得到以下错误:
Error: Uncaught (in promise): TypeError: Cannot read property 'removeChild' of null
TypeError: Cannot read property 'removeChild' of null
at AriaDescriber.push../node_modules/@angular/cdk/esm5/a11y.es5.js.AriaDescriber._createMessagesContainer (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/cdk/esm5/a11y.es5.js:268:31)
at AriaDescriber.push../node_modules/@angular/cdk/esm5/a11y.es5.js.AriaDescriber._createMessageElement (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/cdk/esm5/a11y.es5.js:221:1)
at AriaDescriber.push../node_modules/@angular/cdk/esm5/a11y.es5.js.AriaDescriber.describe (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/cdk/esm5/a11y.es5.js:142:1)
at MatTooltip.set [as message] (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/material/esm5/tooltip.es5.js:263:1)
at updateProp (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:22206:1)
at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:21965:1)
at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:23264:1)
at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:23226:1)
at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:23860:1)
at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:23820:1)
at resolvePromise (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:831:1)
at http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:896:1
at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:423:1)
at AsyncTestZoneSpec.push../node_modules/zone.js/dist/zone-testing.js.AsyncTestZoneSpec.onInvokeTask (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone-testing.js:698:1)
at ProxyZoneSpec.push../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvokeTask (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone-testing.js:317:1)
at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:422:1)
at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:195:1)
at drainMicroTaskQueue (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:601:1)这发生在两个测试上,但当它们自己运行时(即使用fdescribe而不是describe),这些测试不会发生这种情况。
不管调用堆栈中出现了什么,我都没有在代码或测试中使用MatToolTip或removeChild。问题似乎发生在测试框架中。在这一点上,我不知道还可以尝试什么。有没有人以前见过这个,或者有任何关于去哪里看的想法?
发布于 2020-02-01 02:49:47
您的DOM缺少父级,可能拼写错误。这些通常很难定位,特别是当linter没有定位文件位置时。下载ReactJS DEV浏览器附加组件,它在以下情况下很有帮助
发布于 2020-08-06 16:42:51
我在angular spec中也遇到了同样的问题。我发现模块导入中缺少CdkTableModule。
https://stackoverflow.com/questions/60009616
复制相似问题