如何编写易读正则匹配两个文件路径(Jest测试脚本适用)
解决Jest匹配多目录测试的可读方案
你可以用两种直观的方式实现匹配src/character-copier或out/character-copier目录的测试需求,不需要复杂难懂的正则:
方案一:优化命令行正则(简洁直观)
直接修改package.json中的脚本,把--testPathPattern的正则写成更易读的形式:
"scripts": { "test": "jest", "test:char": "jest --watchAll --testPathPattern=(src|out)/character-copier" }
这里的(src|out)是正则里的分支选择,意思是匹配src或out开头、后面跟着/character-copier的路径,语法简单易懂,完全符合你要的简洁性。
方案二:用Jest配置文件定义路径(可读性拉满)
如果完全不想用正则,可以创建单独的Jest配置文件来明确指定测试路径。比如新建jest.char.config.js:
module.exports = { testMatch: [ // 匹配src目录下的TypeScript测试文件 "<rootDir>/src/character-copier/**/*.test.ts", // 匹配out目录下转译后的JavaScript测试文件 "<rootDir>/out/character-copier/**/*.test.js" ] };
然后修改package.json的脚本:
"scripts": { "test": "jest", "test:char": "jest --watchAll --config jest.char.config.js" }
这种方式完全通过路径列表指定测试范围,不需要理解正则,可读性最高,适合团队协作时避免正则理解成本。
另外要注意,确保Jest能正确识别转译后的文件,如果你还没配置TypeScript转译,可以在Jest配置中添加transform字段,用ts-jest处理TypeScript文件,但你的问题核心是路径匹配,上面的方案已经能解决需求。
内容的提问来源于stack exchange,提问作者ClareSudbery
相关产品推荐
相关产品推荐

