Angular Результаты модульного теста в TypeError: Невозможно прочитать свойство 'removeChild' из null - PullRequest
1 голос
/ 31 января 2020

У меня есть набор модульных тестов для умеренно большого 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)

Это происходит в 2 из тестов, но не происходит в тех тесты, когда они запускаются сами по себе (ie, при использовании fdescribe вместо describe).

Несмотря на то, что появляется в стеке вызовов, я не использую MatToolTip или removeChild в код или тесты. Кажется, проблема возникает в тестовой среде. На данный момент я не знаю, что еще попробовать. Кто-нибудь видел это раньше или есть мысли о том, где искать?

1 Ответ

0 голосов
/ 31 января 2020

В вашем DOM отсутствует родитель, возможно, неправильно написано. Их трудно найти часто, особенно когда линтер не находит местоположение файла. Загрузите дополнение для браузера ReactJS DEV, которое помогает в этих ситуациях

...