配置正确TestRegex但Jest无法找到测试文件的问题求助
排查Jest无法找到测试文件的问题
1. 命令参数顺序错误
你的运行命令存在参数顺序问题:
jest --config --detectOpenHandles ./jest.config.js
--config选项需要直接指定配置文件路径,正确的命令格式应该是:
jest --config ./jest.config.js --detectOpenHandles
原命令中,Jest会把--detectOpenHandles当作配置文件路径,而将./jest.config.js作为测试文件的匹配模式,这就导致错误输出里的Pattern: ./jest.config.js - 0 matches——它根本不是测试文件,自然找不到匹配项。
2. testRegex未匹配TS/TSX测试文件
你的Jest配置里testRegex仅匹配.js/.jsx后缀的文件:
testRegex: '(/__tests__/.*|(\.|/)(test|spec))\.js?$',
但项目使用ts-jest,测试文件大概率是.ts/.tsx后缀。需要修改testRegex来覆盖这些类型:
testRegex: '(/__tests__/.*|(\.|/)(test|spec))\.(tsx?|jsx?)$',
这样就能匹配.ts、.tsx、.js、.jsx的测试文件。
3. 其他可能的排查点
- 检查
testPathIgnorePatterns:当前配置['/__utils__/']会忽略路径包含__utils__的文件,如果你的测试文件存放在这个目录下,会被误过滤。可以暂时注释该配置,测试是否能找到文件。 - 移除重复配置:你的配置里重复写了两次
testEnvironment: 'jsdom',虽然不影响测试文件查找,但建议删除其中一项,保持配置整洁。 - 验证
jest-webpack-resolver:该 resolver 可能会影响Jest的文件查找逻辑,如果上述修改后仍无效,可以暂时注释resolver: 'jest-webpack-resolver',测试是否恢复正常。
内容的提问来源于stack exchange,提问作者AAMCODE
相关产品推荐
相关产品推荐

