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?
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.
Prensa p
y, a continuación, escriba un nombre de archivo.
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
oit.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
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-spec
filtrado 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
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
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.
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