Windows下含\r路径的Jest测试执行失败问题求助
解决PowerShell自动补全Jest路径不匹配测试用例的问题
问题根源
你的Jest配置中testMatch的正则表达式仅匹配正斜杠(/)分隔的路径,但PowerShell自动补全生成的是Windows风格的反斜杠(\)路径(比如.\r.test.js),导致正则无法识别该文件为测试文件,因此提示无测试用例。
修复方案
修改testMatch中的正则,使其同时兼容正斜杠和反斜杠路径。具体做法是将路径分隔符的匹配逻辑调整为支持两种分隔符:
修改后的Jest配置
module.exports = { preset: '@shelf/jest-mongodb', transform: { '^.+\\.[tj]s?(x)?$': ['ts-jest', { rootDir: '.' }] }, // 调整testMatch的正则,支持/和\两种路径分隔符 testMatch: [ '**[/\\\\]tests[/\\\\]__tests__[/\\\\]**[/\\\\]*.[jt]s?(x)', '**[/\\\\]?(*.)+(spec|test).[jt]s?(x)' ], setupFilesAfterEnv: ['<rootDir>/setup-jest.js'], };
逻辑说明
- 在JavaScript正则中,反斜杠需要双重转义(
\\\\),所以[/\\\\]会被解析为匹配单个/或\ - 把原配置中所有的
/替换为[/\\\\],让正则能同时识别两种路径分隔符
验证
修改配置后,执行PowerShell自动补全生成的jest .\r.test.js命令,Jest就能正确识别该测试文件并执行用例了。
内容的提问来源于stack exchange,提问作者Sammaye
相关产品推荐
相关产品推荐

