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

Jest多项目配置下如何共用单个__mocks__文件夹?

让Jest前后端项目共用根目录__mocks__的方案

直接按下面两步操作即可:

  1. 迁移共用模拟文件到项目根目录
    把原来放在backend/src/__mocks__里的通用模拟模块,全部搬到项目根目录下的/__mocks__文件夹中。调整后的项目结构大致如下:
项目根目录
├── __mocks__
├── backend
├── frontend
├── node_modules
└── jest.config.js
  1. 修改Jest配置,让各项目识别根目录模拟文件
    在每个子项目的配置项里添加modulePaths,指向项目根目录,让Jest把根目录纳入模块搜索路径,从而自动识别根目录下的__mocks__。修改后的jest.config.js示例如下:
export default {
  projects: [
    {
      displayName: 'Backend',
      rootDir: './backend',
      roots: ['<rootDir>/src'],
      // 指向根目录,让后端测试能找到根下的__mocks__
      modulePaths: ['<rootDir>/../']
    },
    {
      displayName: 'Frontend',
      rootDir: './frontend',
      roots: ['<rootDir>/src'],
      // 指向根目录,让前端测试能找到根下的__mocks__
      modulePaths: ['<rootDir>/../']
    }
  ]
};

补充说明

  • 如果某个子项目需要专属的模拟模块,依然可以在自身的src/__mocks__下存放,Jest会优先使用项目内的专属模拟,再加载根目录的通用模拟,优先级不会冲突。
  • 配置里的<rootDir>/../是相对子项目根目录的路径(比如backend的rootDir是./backend,../就对应项目根目录),比硬编码绝对路径更灵活,适配不同运行环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:39:46