jest配置testMatch的glob模式无法匹配根目录test文件夹如何解决
问题原因
你写的test/** glob模式不符合jest testMatch 配置的匹配要求:
testMatch需要明确匹配具体的测试文件,而非仅匹配目录前缀。常规glob语义里test/**可以匹配test目录下的所有内容,但jest内部会自动过滤掉目录条目,你没有指定具体的文件匹配规则,因此无法命中任何测试文件。- 你修改为
**/test/**后可以命中文件,是因为该规则匹配所有路径中包含/test/段的文件,既命中了根目录下test文件夹里的测试文件,也会误命中src/test目录下的文件,不符合你的需求。
解决方案
调整testMatch规则,明确指定匹配根目录test下的所有.test.js后缀文件即可:
{ "testMatch": [ "test/**/*.test.js" ] }
该规则仅匹配相对于项目根目录的test文件夹下所有层级的.test.js测试文件,不会误匹配src/test目录下的内容。如果你的项目包含其他后缀的测试文件,也可以根据需要调整后缀匹配规则,比如适配ts、jsx格式可以写为test/**/*.[jt]s?(x)。
内容的提问来源于stack exchange,提问作者Mansur Ali Koroglu
相关产品推荐
相关产品推荐

