改进 Jest testMatch 模式匹配器
Improving Jest testMatch pattern matcher
我正在使用 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)?
如您所述,这些模式实际上并不是正则表达式。如果您正在寻找关键字来开始搜索,它们就是一种“全局模式”。我也可能弄错了,但我很确定你想要 [jt]
或 (j|t)
,而不是 [j|t]
,但可能无关紧要。
话虽这么说,听起来您更喜欢正则表达式语法而不是 glob 语法。我不能说我怪你!与其尝试找出与您所追求的正则表达式产生相同行为的 glob,不如查看 --testRegex
选项(这也是 属性 名称 jest.config.js
文件).
看这里:https://jestjs.io/docs/configuration#testregex-string--arraystring
作为奖励,出于毫无意义的原因,testMatch
只能采用一组模式,但 testRegex
可以采用字符串(如果只有一个模式要匹配)或数组
我正在使用 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)?
如您所述,这些模式实际上并不是正则表达式。如果您正在寻找关键字来开始搜索,它们就是一种“全局模式”。我也可能弄错了,但我很确定你想要 [jt]
或 (j|t)
,而不是 [j|t]
,但可能无关紧要。
话虽这么说,听起来您更喜欢正则表达式语法而不是 glob 语法。我不能说我怪你!与其尝试找出与您所追求的正则表达式产生相同行为的 glob,不如查看 --testRegex
选项(这也是 属性 名称 jest.config.js
文件).
看这里:https://jestjs.io/docs/configuration#testregex-string--arraystring
作为奖励,出于毫无意义的原因,testMatch
只能采用一组模式,但 testRegex
可以采用字符串(如果只有一个模式要匹配)或数组