Tengo una prueba 'funciona con niños anidados' dentro del archivo fix-order-test.js.
Ejecutar lo siguiente ejecuta todas las pruebas en el archivo.
jest fix-order-test
¿Cómo ejecuto solo una prueba? Lo siguiente no funciona, ya que busca un archivo de la expresión regular especificada.
jest 'works with nested children'
--testNamePattern
'works with nested children'
opciones de CLI de Jest #testNamePatternRespuestas:
Desde la línea de comando use la bandera
--testNamePattern
o-t
Esto solo ejecutará pruebas que coincidan con el patrón de nombre de prueba que proporcione. Está en los documentos de Jest .
Otra forma es ejecutar pruebas en modo reloj
jest --watch
y luego presionar ppara filtrar las pruebas escribiendo el nombre del archivo de prueba o tpara ejecutar un solo nombre de prueba.Si tiene
it
dentro de undescribe
bloque, debe ejecutarfuente
it()
función y no el nombre del archivo. Que es lo que yo pensaba.npm test -- -t "fix order test"
./node_modules/.bin/jest --config=./.jest.config.json ./src/x/y/sites.js/sitesWorker.test.js -t 'given only incorrect sites'
La documentación de Jest recomienda lo siguiente:
o
fuente
test.only
. Entonces, si solo desea ejecutar una prueba dentro de un archivo que tiene muchos casos de prueba dentro de un conjunto de casos de prueba que consta de muchos archivos, desafortunadamente tiene que ejecutar ese único archivojest myTestFile.test.js
npm test
. Tendrá que ejecutar el archivo solo o presionarp
para establecer un filtro.Como se menciona en otras respuestas,
test.only
simplemente filtra otras pruebas en el mismo archivo . Entonces las pruebas en otros archivos aún se ejecutarían.Entonces, para ejecutar una sola prueba, hay dos enfoques:
Opción 1: si el nombre de su prueba es único, puede ingresar
t
mientras está en modo de observación e ingresar el nombre de la prueba que desea ejecutar.Opcion 2:
p
mientras estás en modo reloj para ingresar una expresión regular para el nombre de archivo que deseas ejecutar. (Los comandos relevantes como este se muestran cuando ejecuta Jest en modo reloj).it
ait.only
la prueba que desea ejecutar.Con cualquiera de los enfoques anteriores, Jest solo ejecutará la prueba individual en el archivo que ha especificado.
fuente
Comando completo para ejecutar una sola prueba de Jest
Mando:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:node_modules\jest\bin\jest.js
node_modules/.bin/jest
-i <you-test-file>
: ruta al archivo con pruebas (js
ots
)-c <jest-config>
: ruta a un archivo de configuración de Jest separado (JSON), si mantiene su configuración de Jestpackage.json
no tiene que especificar este parámetro (Jest lo encontrará sin su ayuda)-t <the-name-of-test-block>
: En realidad, es un nombre (el primer parámetro) dedescribe(...)
,it(...)
otest(...)
bloque.Ejemplo:
Entonces, el comando
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
probará
it("1 + 1 = 2", ...)
, pero si cambia el-t
parámetro a"math tests"
, ejecutará ambas pruebas desde eldescribe("math tests",...)
bloque.Observaciones:
node_modules/.bin/jest
connode_modules\jest\bin\jest.js
.'--inspect-brk'
parámetro al comando.Ejecutando una sola prueba de Jest a través de scripts NPM en 'package.json'
Una vez instalado Jest, puede simplificar la sintaxis de este comando (arriba) mediante el uso de scripts NPM . En
"package.json"
agregar un nuevo script a la"scripts"
sección:En este caso, usamos un alias en
'jest'
lugar de escribir la ruta completa. Además, no especificamos la ruta del archivo de configuración, ya que también podemos"package.json"
ubicarla y Jest la examinará de forma predeterminada. Ahora puedes ejecutar el comando:npm run test:math
y
"math tests"
se ejecutará el bloque con dos pruebas. O, por supuesto, puede especificar una prueba en particular por su nombre.Otra opción sería extraer el
<the-name-of-test-block>
parámetro fuera del"test:math"
script y pasarlo desde el comando NPM:package.json:
Mando:
npm run test:math "math tests"
Ahora puede administrar el nombre de la (s) prueba (s) de ejecución con un comando mucho más corto.
Observaciones:
'jest'
comando funcionará con scripts NPM porquenode
.Ejecutando la prueba Jest seleccionada en Visual Studio Code
Si está utilizando Visual Studio Code, puede aprovecharlo y ejecutar la prueba seleccionada actualmente (en el editor de código) presionando el
F5
botón. Para hacer esto, necesitaremos crear un nuevo bloque de configuración de inicio en el".vscode/launch.json"
archivo. En esa configuración, utilizaremos variables predefinidas que se sustituyen por las apropiadas (desafortunadamente valores no siempre ) cuando se ejecuta. De todos los disponibles solo nos interesan estos:${relativeFile}
- el archivo abierto actual relativo a${workspaceFolder}
${selectedText}
- el texto seleccionado actual en el archivo activoPero antes de escribir la configuración de lanzamiento debemos agregar el
'test'
script en nuestro'package.json'
(si aún no lo tenemos).package.json:
entonces podemos usarlo en nuestra configuración de lanzamiento.
Configuración de lanzamiento:
en realidad hace lo mismo que los comandos descritos anteriormente en esta respuesta. Ahora que todo está listo, podemos ejecutar cualquier prueba que queramos sin tener que reescribir los parámetros del comando manualmente.
Esto es todo lo que necesitas hacer:
'F5'
botón¡Y voilá!
Ahora para ejecutar cualquier prueba que desee simplemente ábrala en el editor, seleccione su nombre y presione F5.
Desafortunadamente, no será "voila" en las máquinas con Windows porque sustituyen (quién sabe por qué) la
${relativeFile}
variable con la ruta que ha invertido las barras inclinadas y Jest no entendería esa ruta.Observaciones:
'--inspect-brk'
parámetro.'package.json'
.fuente
npx
para simplificar enormemente las llamadas a Jest, independientemente del sistema operativo.También puede usar
f
ox
para enfocar o excluir una prueba. Por ejemplofuente
xit
funcionó para mí, perofit
no funciona. Estoy usando [email protected].fit
funciona en [email protected] para mí.f
funciona solo dentro de un archivo.Como se dijo anteriormente, puede ejecutar el comando
Si tiene
it
dentro de undescribe
bloque, debe ejecutarfuente
Si se está
jest
ejecutando como un comando de script, algo asínpm test
, debe usar el siguiente comando para que funcione:fuente
con la última versión de jest , puede usar uno de los siguientes para ejecutar solo una prueba, la misma para el conjunto de pruebas.
jest 'test 1'
puede funcionar también si el nombre de la prueba es único.fuente
En VS Code, esto me permite ejecutar / depurar solo 1 prueba de Jest, con puntos de interrupción: https://github.com/Microsoft/vscode-recipes/tree/master/debugging-jest-tests
Mi
launch.json
tiene esto adentro:y esto en
package.json
:test
(oit
) atest.only
(oit.only
). Para ejecutar 1 conjunto de pruebas (varias pruebas), cambiedescribe
adescribe.only
.Jest Current File
.fuente
"scripts": { "test": "jest" }
en lapackage.json
causa que ha especificado la ruta completa en el"program"
parámetrolaunch.json
.solo un pequeño complemento, porque parece que hubo una especie de pelea si usar
./node_modules/.bin/jest -i ...
o simplementejest -i ...
onpm test -- -i ...
jest
funciona si lo tiene instalado globalmente (como con npm install -g jest), una forma no tan limpia de manejar dependenciasnpx jest -i ...
=> para eso es exactamente npx. te salva de escribir./node_modules/.bin/...
fuente
Aquí está mi opinión:
./node_modules/.bin/jest --config test/jest-unit-config.json --runInBand src/components/OpenForm/OpenForm.spec.js -t 'show expanded'
Notas:
./node_modules/.bin/...
es una forma maravillosa de acceder al binario jest (o mocha o ...) instalado localmente que viene con el paquete instalado localmente. (sí, en sus scripts npm no puede hacerjest
nada antes, pero esto es útil en la línea de comandos ... (eso también es un buen comienzo para su configuración de depuración, cualquier IDE que esté usando ...)package.json
), esto es lo que necesita.--runInBand
- como se dijo, no sé acerca de su configuración, pero si se concentra en desarrollar / arreglar una sola prueba, prefiere no tratar con trabajadores web ...-t
para no ejecutar todas las pruebas en ese archivo, sino solo una (aquí: la que tiene algo con 'show expanded
' en su nombre). Se puede lograr el mismo efecto pegando.only()
en ese archivo.fuente
Ahora hay un buen complemento de broma para esto llamado
jest-watch-typeahead
que hace que este proceso sea mucho más simple.fuente
Esto solo funcionará si el nombre de la especificación de prueba es único. El código anterior haría referencia
un archivo con este nombre:
test-name.component.spec.ts
fuente