You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular使用Jest跑单元测试提示zone-testing.js缺失如何解决

问题解决说明

报错的核心原因是Jest测试运行环境未正确加载Angular单元测试依赖的zone.js测试工具包,@briebug/jest-schematic工具未自动补全这部分配置。

分步操作步骤
  • 配置测试入口导入zone.js测试包
    找到项目src目录下的test.ts测试入口文件,在文件最顶部添加以下导入代码:
import 'zone.js';
import 'zone.js/testing';

Angular 13及更早版本请使用import 'zone.js/dist/zone-testing'替代上述第二行导入语句

  • 校验Jest配置的入口关联
    打开项目根目录下的jest.config.js配置文件,确认已经将test.ts配置为预加载文件:
module.exports = {
  // 其余原有配置保持不变
  setupFilesAfterEnv: ['<rootDir>/src/test.ts']
}

若项目没有单独的jest.config.js,检查angular.json中对应项目的test配置下,builder为@briebug/jest-schematic:jest的配置项中,已包含setupFilesAfterEnv的对应配置。

  • 校验依赖版本匹配
    检查package.json中zone.js的版本与@angular/core的大版本号完全一致,版本不匹配时执行对应版本的安装命令,以Angular 16为例:
npm install zone.js@16 --save-dev
  • 清理缓存重新运行测试
    配置修改完成后,先清理Jest缓存避免旧缓存影响:
npx jest --clearCache

之后执行npm test即可正常运行测试。

内容的提问来源于stack exchange,提问作者Alexander Castillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:48:03