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

Angular项目Jest测试触发EBUSY资源锁定问题求助

解决Nx+Jest执行测试时的EBUSY资源锁定错误
  • 强制禁用Jest并行执行
    直接在项目的jest.config.ts或者project.json的test配置里限制并发数为1:

    • 若用jest.config.ts,添加配置项:
      export default {
        // 其他原有配置
        maxWorkers: 1,
      };
      
    • 若用project.json,在targets.test.options里加参数:
      "test": {
        "executor": "@nrwl/jest:jest",
        "options": {
          "jestConfig": "apps/your-project/jest.config.ts",
          "maxWorkers": 1
        }
      }
      
  • 修改Jest缓存目录
    把默认的C盘Temp缓存迁移到项目内部,避免系统级文件锁定。在jest.config.ts里添加:

    export default {
      // 其他原有配置
      cacheDirectory: '<rootDir>/jest-cache',
    };
    

    记得把jest-cache目录加到.gitignore里,防止提交到代码仓库。

  • 排查setup-jest.ts的资源占用
    错误栈起始于这个文件的导入语句,检查里面的代码:有没有全局文件读写操作、未释放的资源连接(比如某些测试工具初始化时持有文件锁),这类操作在并行执行时容易引发资源冲突。

  • 清理Nx全局缓存
    执行Nx的重置命令,清空Nx的缓存和状态,解决可能的缓存冲突:

    nx reset
    
  • 检查Windows系统级文件锁定
    Windows Defender或其他杀毒软件可能会扫描Temp目录的文件,导致Jest无法正常访问。可以临时关闭实时保护(测试完成后记得打开),或者把Jest缓存目录加入杀毒软件的排除列表。

内容的提问来源于stack exchange,提问作者Tim L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:27:12