Angular12项目ng test报错NG0303:无法绑定ngbTooltip属性如何解决
排查处理步骤
- 先核对schema拼写与导入:90%以上的同类问题是拼写错误,你写的
CUSTOM_ELEMENT_SCHEMA少了末尾的S,正确命名是CUSTOM_ELEMENTS_SCHEMA,而且必须从@angular/core包导入,不要误导入其他第三方包的同名导出。 - 确认配置生效范围:
ng serve用的是应用全局模块配置,但ng test运行时每个.spec文件会独立初始化测试模块,应用模块的配置不会自动继承到测试环境,你需要在所有用到ngbTooltip的组件对应的.spec文件里,给TestBed.configureTestingModule的schemas数组加上正确的CUSTOM_ELEMENTS_SCHEMA,也可以直接在测试全局配置中添加默认schema,不用每个文件重复配。 - 更稳妥的替代方案:不推荐完全靠schema忽略未知属性,你可以直接在测试模块的
imports数组里导入NgbTooltipModule(从@ng-bootstrap/ng-bootstrap导入),或者导入对应工具库的mock tooltip模块,从根源上解决属性不识别的问题。 - 定位具体报错行:运行测试时加参数
ng test --source-map=true,或者修改karma.conf.js开启sourceMap配置,就能把报错映射到源码的具体行数,快速定位到没正确配置的测试文件。 - 排查嵌套组件的配置遗漏:如果当前测试的组件引用了带
ngbTooltip的子组件,除了当前组件的测试配置外,也要确保子组件的测试配置正确,或者在当前组件的测试模块中正确声明/导入子组件。
内容的提问来源于stack exchange,提问作者Alex Kim
相关产品推荐
相关产品推荐

