Angular 9项目运行Jest测试报错:找不到InlineHtmlStripStylesTransformer.js
问题根因
你遇到的报错核心是Jest生态依赖和Angular 9版本不匹配:
- @angular-builders/jest 大版本需要和Angular大版本一致,你使用的v8.x和Angular 9不兼容
- jest-preset-angular 8.x仅支持jest 25.x版本,你使用的jest 26版本超出适配范围
- 版本不兼容导致预设内置的转换器路径识别错误,即便手动配置转换器路径也无法生效
可选用的解决方案
方案1:继续使用Jest
按如下步骤调整即可正常运行:
- 卸载现有不兼容的Jest相关依赖
yarn remove jest jest-preset-angular @angular-builders/jest
- 安装和Angular 9匹配的版本
yarn add -D jest@25.5.4 jest-preset-angular@8.4.0 @angular-builders/jest@9.0.1 ts-jest@25.5.1
- 还原jest.config.js配置,删除所有手动添加的
astTransformers相关配置,jest-preset-angular 8.x版本的预设已经内置了对应的HTML、样式转换器,不需要额外配置 - 清理Jest缓存后启动测试
yarn test --clearCache && yarn test
方案2:使用Angular默认测试工具
你当前切换到Karma+Jasmine的方案是合理的,Angular 9默认自带这套测试运行器的完整配置,不需要额外做版本适配,开箱即可运行组件、服务的单元测试。
内容的提问来源于stack exchange,提问作者botf
相关产品推荐
相关产品推荐

