我使用Jest并使用这个“testMatch”模式来匹配jest.config.js中的测试文件:
testMatch: ['**/?(*.)+(spec).[j|t]s?(x)']
但是,它错误地选择了一些以spec.js结尾的文件。我希望它只匹配.spec.js,但是任何我尝试的结果都没有找到任何文件。
这个正则表达式似乎可以实现我想要的/.*\.spec\.[j|t]sx?/,但我认为这些模式匹配器的工作方式略有不同。
我需要更改什么才能使它只拾取[something].spec.js文件(或jsx/ts/tsx)?
发布于 2022-02-27 04:15:47
正如您注意到的,这些模式实际上并不是regex。如果你在寻找一个关键字来开始你的搜索,它们是一种“全球模式”的形式。另外,我可能弄错了,但我很肯定,您想要的是[jt]或(j|t),而不是[j|t],可能并不重要。
话虽如此,听起来似乎您更喜欢regex语法而不是glob语法。我不能说我怪你!与其试图找出产生与所追求的正则表达式相同的行为的glob,不如改用--testRegex选项(这也是jest.config.js文件的属性名称)。
看看这里:https://jestjs.io/docs/configuration#testregex-string--arraystring作为一个奖励,出于没有意义的原因,testMatch只能接受一个模式数组,但是testRegex可以是一个字符串(如果您只有一个模式要匹配)或一个数组。
https://stackoverflow.com/questions/70592653
复制相似问题