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

GitLab Job执行Jest测试提示未找到测试文件求助

排查GitLab Job中Jest无法找到测试的问题

看了你给出的Jest输出,核心问题是Jest找不到符合执行条件的测试用例——虽然检测到1个文件匹配testRegex规则,但最终没有匹配到要执行的测试模式。结合你提到其他项目用相同CI配置能正常运行,我整理了几个最可能的排查方向:

1. 先确认本地与CI环境的测试文件匹配一致性

先在本地项目根目录运行jest --verbose,如果本地能正常找到并执行测试,那问题大概率出在CI环境的配置或文件同步上;如果本地也找不到,那就是测试文件的命名/路径不符合Jest规则:

  • 你的testRegex规则是(/__tests__/.*|\.(test|spec))\.(tsx?|jsx?)$,意味着测试文件要么放在__tests__目录下,要么文件名必须以.test.ts/.test.js/.spec.ts/.spec.js(含x后缀)结尾,检查你的测试文件是否满足这个要求。

2. 验证GitLab Job的工作目录是否正确

有时候CI的默认工作目录并非项目根目录,会导致Jest找不到测试文件。你可以在CI脚本里加一步打印当前目录,确认路径是否正确:

script:
  - pwd # 打印当前工作目录
  - yarn run jest --verbose

对比本地运行pwd的结果,确保Jest是在项目根目录下执行的。

3. 检查测试文件是否被GitLab CI忽略

如果测试文件被.gitignore排除,或者CI拉取代码时没同步到这些文件,Jest自然找不到。可以做两个验证:

  • 本地执行git status,确认测试文件处于被Git追踪的状态
  • 在CI脚本里添加目录查看命令,确认测试文件存在:
script:
  - ls -la ./__tests__ # 替换成你的测试文件所在目录
  - yarn run jest --verbose

4. 排查Jest配置的项目差异

虽然CI配置相同,但不同项目的本地Jest配置可能存在差异:

  • 检查项目根目录的jest.config.js或package.json里的jest字段,看testPathIgnorePatterns是否额外排除了测试文件所在目录
  • 在CI里运行jest --showConfig,输出当前Jest的完整配置,和能正常运行的项目对比,重点看testMatch、testRegex、testPathIgnorePatterns这几个配置项

5. 确认依赖安装的完整性

CI环境的依赖缓存或安装不完整,可能导致Jest版本不一致或依赖缺失:

  • 在CI脚本里添加yarn list jest,查看Jest版本并和本地对比
  • 尝试清空缓存重新安装依赖,排除缓存问题:
script:
  - rm -rf node_modules yarn.lock
  - yarn install --frozen-lockfile
  - yarn run jest --verbose

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:30:16