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

Jest运行Mock文件报错「测试套件必须包含至少一个测试」如何解决?

问题原因

Jest默认会将__tests__目录下所有.js后缀的文件识别为测试用例文件,你当前将静态资源mock文件存放在__tests__/__mocks__路径下,Jest扫描到这两个文件中没有以test/it声明的测试用例,就会抛出「测试套件必须包含至少一个测试」的报错。

解决方案

你可以选择以下任意一种方式解决:

  • 方案1:调整mock文件存放路径
    不要将通用mock文件放在__tests__目录下,在项目根目录新建jest-mocks文件夹,把fileMock.js、styleMock.js移动到该文件夹下,再修改Jest配置中的moduleNameMapper路径即可:

    "moduleNameMapper": {
      "^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/jest-mocks/fileMock.js",
      "^.+\\.(css|less)$": "<rootDir>/jest-mocks/styleMock.js"
    }
    
  • 方案2:配置Jest忽略mock文件
    如果不想调整文件路径,可以在Jest配置中添加testPathIgnorePatterns规则,排除__mocks__目录下的文件:

    "testPathIgnorePatterns": [
      "<rootDir>/__tests__/__mocks__/"
    ]
    

    你也可以调整testMatch规则,让Jest仅识别带.test.js/.spec.js后缀的文件为测试用例:

    "testMatch": [
      "**/__tests__/**/*.test.js",
      "**/?(*.)+(spec|test).[tj]s?(x)"
    ]
    

配置修改完成后重新运行Jest即可恢复正常,原有静态资源的mock功能不会受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:15:02