Jest配置testMatch glob模式未正常匹配测试文件问题求助
Jest testMatch 规则不生效问题解决方案
问题原因
Jest 中testMatch的匹配路径默认相对于rootDir配置项,rootDir默认值为jest.config.js文件所在的目录。你当前把jest.config.js放在src目录下,因此原配置只会在src目录内部搜索test文件夹,无法匹配到和src平级的上层test目录。
解决方案
方案一:调整 rootDir 指向项目根目录(更推荐,适配性更好)
修改jest.config.js配置,先指定根目录为项目根目录(也就是src和test文件夹所在的上层目录),再配置匹配规则:
// jest.config.js module.exports = { // 根目录指向当前配置文件所在目录(src)的上一级,即项目根目录 rootDir: '../', // 从项目根目录匹配 test 文件夹下所有 .ts 测试文件 testMatch: [ '**/test/*.ts' ], // 其余原有配置保持不变 }
方案二:直接在 testMatch 中指定上级目录路径
如果不需要修改全局rootDir配置,可以直接写相对路径匹配上级目录的测试文件:
// jest.config.js module.exports = { // 直接匹配当前配置文件所在目录上一级的 test 文件夹下所有 .ts 文件 testMatch: [ '../test/*.ts' ], // 其余原有配置保持不变 }
补充排查点
如果配置后仍不生效,可以执行jest --showConfig查看最终生效的配置,确认是否有testPathIgnorePatterns等其他规则拦截了测试文件匹配。
内容的提问来源于stack exchange,提问作者flowermia
相关产品推荐
相关产品推荐

