Quiero ejecutar solo una prueba con Jest.
Yo uso it.only o describe.only , pero todavía ejecuta muchas pruebas. Creo que ejecuta todas las pruebas desde mi última confirmación, pero no debería tener este comportamiento con el only indicador establecido explícitamente, ¿verdad?
¿Qué causa este comportamiento y cómo puedo ejecutar una sola prueba?
Jest paraleliza las ejecuciones de prueba y no sabe por adelantado qué pruebas debe ejecutar y cuáles no. Esto significa que cuando usa "ajuste", solo ejecutará una prueba en ese archivo. Pero aún ejecuta todos los demás archivos de prueba en su proyecto .
fit , fdescribe y it.only , describe.only tienen el mismo propósito: omitir otras pruebas y ejecutar solo a mí.
Fuente: https://github.com/facebook/jest/issues/698#issuecomment-177673281
Utilice el mecanismo de filtrado Jest. Cuando ejecutas tus pruebas como,
jest --config=jest.config.json --watch puede filtrar las pruebas por nombre de testname o nombre de filename . Simplemente siga las instrucciones en la terminal.
Presione p y luego escriba un nombre de archivo.
Luego, puede usar describe.only e it.only , que omitirán todas las demás pruebas del archivo filtrado y probado.
it.only y describe.only funcionan solo para el módulo en el que se encuentran. Si tiene problemas para filtrar pruebas en varios archivos, puede usar jest -t name-of-spec , filtrando las pruebas que coinciden con el nombre especificado (coincidencia con el nombre en describir o probar).
Fuente: Opciones de la CLI de Jest
Por ejemplo, enfoco la prueba que estoy escribiendo actualmente de esta manera (con el script de prueba en el package.json ):
npm test -- -t "test foo"
Es como esto:
jest sometest.test.js -t "some expression to match a describe or a test" Probará todos los archivos con el nombre sometest.test.js y la coincidencia basada en la opción -t. Si solo desea probar un archivo específico, puede hacer esto:
jest src/user/.../sometest.test.js