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

求助:Create React App无法识别/tests目录下的测试文件

解决Create React App无法识别tests目录下测试文件的问题

我之前折腾项目结构的时候也遇到过一模一样的问题——Create React App默认只会扫描src目录下的测试文件(包括src里的__tests__子文件夹,或者文件名以.test.js/.spec.js结尾的文件),所以把测试移到根目录的tests文件夹后,就得调整配置让它识别到,下面是两种简单可行的解决方法:

方法一:直接修改package.json的test命令

在package.json的scripts区块里,把test脚本改成下面这样,指定测试文件的路径匹配规则:

"scripts": {
  "start": "react-scripts start",
  "build": "react-scripts build",
  "test": "react-scripts test --testPathPattern=\"tests/**/*.test.js\"",
  "eject": "react-scripts eject"
}

运行npm test时,React Scripts就会自动扫描tests目录下所有.test.js结尾的文件。如果你的测试文件还有.spec.js后缀,把规则改成"tests/**/*.{test,spec}.js"就行。

方法二:添加Jest全局配置(推荐)

如果想同时保留src目录下的测试文件支持,让Jest自动识别tests和原有的测试位置,可以在package.json里添加jest配置字段,覆盖默认的匹配规则:

"jest": {
  "testMatch": [
    "<rootDir>/tests/**/*.{test,spec}.{js,jsx}",
    "<rootDir>/src/**/__tests__/**/*.{js,jsx}",
    "<rootDir>/src/**/*.{test,spec}.{js,jsx}"
  ]
}

这个配置会让Jest同时监听三个位置的测试文件:

  • tests目录下所有.test.js/.spec.js/.test.jsx/.spec.jsx文件
  • src目录下__tests__子文件夹里的所有测试文件
  • src目录下直接命名为.test.js/.spec.js的文件

另外要确认你的App.test.js里的导入路径是对的——你现在写的import App from "../src/App";完全没问题,因为tests和src都在项目根目录下,相对路径是正确的。

最后,要是之前已经在运行npm test --watch的话,记得重启一下测试命令,这样新配置就能生效,Jest也能找到tests目录下的测试文件啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:04:38