Estoy usando Jest y usando este patrón 'testMatch' para hacer coincidir mis archivos de prueba dentro de jest.config.js:
testMatch: ['**/?(*.)+(spec).[j|t]s?(x)']
Pero está recogiendo incorrectamente algunos archivos que terminan en spec.js Me gustaría que solo coincida con .spec.js , pero todo lo que intento da como resultado que no se encuentren archivos.
Esta expresión regular parece hacer lo que quiero /.*\.spec\.[j|t]sx?/ pero creo que estos comparadores de patrones funcionan de manera ligeramente diferente
¿Qué tengo que cambiar para que solo recoja [something].spec.js archivos (o jsx/ts/tsx)?
Como notó, estos patrones no son en realidad expresiones regulares. Si está buscando una palabra clave para comenzar su búsqueda, son una forma de "patrones globales". También podría estar equivocado, pero estoy bastante seguro de que quieres [jt] o (j|t) , no [j|t] , aunque puede que no importe.
Dicho esto, parece que prefiere la sintaxis de expresiones regulares a la sintaxis global. ¡No puedo decir que te culpo! En lugar de tratar de descubrir el globo que produce el mismo comportamiento que la expresión regular que busca, es posible que desee ver la opción --testRegex en su lugar (que también es el nombre de la propiedad para su archivo jest.config.js ).
eche un vistazo aquí: https://jestjs.io/docs/configuration#testregex-string--arraystring Como beneficio adicional, por razones que no tienen sentido, testMatch solo puede tomar una matriz de patrones, pero testRegex puede tomar una cadena (si solo tiene un patrón para hacer coincidir) o una matriz