Ejecute solo UNA prueba con Jest

5 minutos de lectura

avatar de usuario
jpenna

Quiero ejecutar solo una prueba con Jest.

yo suelo it.only o describe.only, pero aún ejecuta muchas pruebas. Creo que ejecuta todas las pruebas desde mi última confirmación, pero no debería tener este comportamiento con el only marca establecida explícitamente, ¿verdad?

¿Qué causa este comportamiento y cómo puedo ejecutar una sola prueba?

  • Posible duplicado de ¿Cómo ejecuto una sola prueba usando Jest?

    – YPCrumble

    11 de abril de 2018 a las 14:56

  • Si acepto la “bandera duplicada”, “marcará su pregunta como duplicada, dirigiendo a los futuros lectores a la pregunta original y evitando que se publiquen más respuestas aquí”. No creo que sean exactamente iguales, ya que cada pregunta y respuesta tienen enfoques diferentes.

    – jpenna

    12 de abril de 2018 a las 9:37

  • @jpenna: solo mira la pregunta original. Se dieron las mismas respuestas.

    – Dan Dascalescu

    22 de marzo de 2019 a las 5:52

avatar de usuario
dawid karabin

Broma paraleliza las ejecuciones de prueba y no sabe por adelantado qué pruebas debe ejecutar y cuáles no. Esto significa 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 un testname o filename. Simplemente siga las instrucciones en la terminal.

Ingrese la descripción de la imagen aquí

Prensa py, a continuación, escriba un nombre de archivo.

Ingrese la descripción de la imagen aquí

Entonces puedes usar describe.only y it.only que omitirá todas las demás pruebas del archivo filtrado y probado.

  • Estoy haciendo este filtro por archivo, pero es raro… Así que el .only solo sirve para las pruebas del mismo archivo?

    – jpenna

    8 de junio de 2017 a las 23:03

  • Me gusta aún más esa cosa .only, ya que solía olvidarme de deshacer .only en el código fuente y confirmar eso.

    – Dziamid

    16 de marzo de 2018 a las 16:05

  • Aunque se omiten las pruebas, todavía parece evaluar el código bajo prueba en cada ejemplo. ¿Realmente no hay una forma de ejecutar solo una prueba en 2019?

    – Adán

    8 de febrero de 2019 a las 17:29

  • @adaam No estoy seguro de haber entendido bien su pregunta, así que corríjame si me equivoco. Si las pruebas están en archivos separados, solo se ejecuta el código en un archivo específico cuando usa el patrón para ejecutar pruebas explícitamente. Cuando se ejecuta el código para un archivo específico, se analiza todo el código en ese archivo, por lo que incluso si usa it.only o it.skip para una sola prueba que contiene un error de sintaxis, todas las pruebas fallarán. Por supuesto, no se ejecutará el código de los archivos excluidos por patrón. imgur.com/z9FlQEZ

    –Dawid Karabin

    9 de febrero de 2019 a las 10:33


  • @hinok Pegue un archivo console.log en su componente Carousel y vuelva a ejecutar su corredor de prueba. Para mí, incluso si uso if.only consola.registros desde el componente Carrusel tantas veces como pruebas omitidas/no omitidas para ese componente en sus patrones de vigilancia.

    – Adán

    18 de febrero de 2019 a las 14:36

avatar de usuario
rodgobbi

it.only y describe.only funcionan solo para el módulo en el que se encuentran. Si tiene problemas para filtrar las pruebas en varios archivos, puede usar jest -t name-of-specfiltrado de pruebas que coincidan con el nombre especificado (coincidencia con el nombre en describe o prueba).

Fuente: Opciones de 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"

  • Esto todavía ejecuta todas las pruebas en mi caso y no tengo idea de por qué

    -Kenny

    12 de junio de 2018 a las 16:55

  • La única explicación que se me ocurre es que está pasando un argumento de cadena que existe en cada nombre de prueba (o prueba describe bloquear). Si ese es el caso, debe limitarse al nombre exacto de la prueba en la que desea enfocarse.

    – rodgobbi

    13 de junio de 2018 a las 14:16

  • Esta respuesta parece mucho más adecuada para otra pregunta: stackoverflow.com/questions/42827054/…

    – 千木郷

    25 de julio de 2018 a las 6:33

avatar de usuario
Hossein Alipur

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 coincidencia basada en la opción -t. Si solo desea probar un archivo específico, puede hacer esto:

jest src/user/.../sometest.test.js

  • Para aquellos que buscan implementar esta opción en un VSCode launch.json archivo de configuración que activará las pruebas en un caso de prueba específico: medium.com/mejor-programacion/…

    – Gus

    6 oct 2020 a las 19:18

  • OMG, esta es la única opción que realmente funcionó para mí después de pasar dos días tratando de solucionar la opción –testNamePattern. ¡Aparentemente, también necesitaba pasar el nombre de prueba!

    – Mykola

    19 de abril de 2021 a las 5:28


avatar de usuario
tonco

Para mí funciona si uso dos parámetros como este:

yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"

Banderas:

--watch: is optional

-f: will do filtering of your files, so if you have a lot of tests with the same name, specify the full path to the exact file

-t: works with 'describe' name or 'it' name of your test

Intentar ingresar la ruta completa da como resultado 0 coincidencias con ese patrón, aunque el archivo existe y tiene un par de afirmaciones.

¿Ha sido útil esta solución?