Angular12升级至14后测试报错:TestBedStatic无configureTestingModule属性
Angular 12升级到14后测试报错:
Property 'configureTestingModule' doesn't exist on type TestBedStatic 解决办法 问题说明
使用ng update将Angular 12应用升级到Angular 14后,应用构建和运行正常,但测试执行失败,出现错误:Property 'configureTestingModule' doesn't exist on type TestBedStatic。
当前依赖版本
@angular/core: ^14.2.0 jasmine-core: ~3.8.0 jasmine-marbles: ^0.8.3 karma: ~6.3.0 protractor: ^7.0.0
测试示例代码
beforeEach( () => { TestBed.configureTestingModule({ providers: [] }); })
解决办法
1. 升级测试依赖版本
Angular 14对测试相关依赖有明确的版本适配要求,当前jasmine-core(3.8.x)和karma(6.3.x)版本偏低,需升级到兼容版本:
- 执行命令更新依赖:
若使用yarn则对应调整命令。npm install jasmine-core@~4.5.0 karma@~6.4.0 --save-dev
2. 检查TestBed导入正确性
确保测试文件中导入的是Angular官方的TestBed模块,避免导入第三方库的同名对象:
import { TestBed } from '@angular/core/testing';
3. 清理缓存并重新安装依赖
- 删除
node_modules目录和package-lock.json(或yarn.lock)文件 - 执行
npm install重新安装依赖 - 运行
ng test重新执行测试
4. 验证Angular CLI配置
确保angular.json中测试相关的配置未出现版本冲突,比如builder指定的@angular-devkit/build-angular:karma版本与当前Angular版本匹配。
内容的提问来源于stack exchange,提问作者Aayushi Jain
相关产品推荐
相关产品推荐

