tutorial que example node.js jestjs

node.js - que - ¿Cómo pruebo un solo archivo con Jest?



package.json que es (11)

Acabo de instalar jest como globalmente y luego ejecuté jest myFileToTest.spec.js y funcionó

Puedo probar varios archivos usando Jest, pero no puedo entender cómo probar un solo archivo.

Yo tengo:

  • Ejecute npm install jest-cli --save-dev
  • package.json actualizado: `{..." scripts ": {" test ":" jest "} ...}
  • Escrito una serie de pruebas.

La ejecución de la npm test funciona como se esperaba (actualmente ejecuta 14 pruebas).

¿Cómo app/foo/__tests__/bar.spec.js un solo archivo, por ejemplo, la app/foo/__tests__/bar.spec.js prueba app/foo/__tests__/bar.spec.js ?

He intentado ejecutar la npm test app/foo/__tests__/bar.spec.js (desde la raíz del proyecto), pero npm test app/foo/__tests__/bar.spec.js el siguiente error:

npm ERR! Error: ENOENT, open ''<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json''

Gracias


Así es como ejecuto dinámicamente las pruebas en un archivo específico sin reiniciar la prueba. Mi proyecto de reacción fue creado fue create-react-app

así que mira la prueba de cambios, ejecutando automáticamente la prueba cuando hago cambios.

Esto es lo que veo al final de los resultados de la prueba en el terminal.

Test Suites: 16 passed, 16 total Tests: 98 passed, 98 total Snapshots: 0 total Time: 5.048s Ran all test suites. Watch Usage: Press w to show more.

Presione W

Watch Usage › Press f to run only failed tests. › Press o to only run tests related to changed files. › Press q to quit watch mode. › Press p to filter by a filename regex pattern. › Press t to filter by a test name regex pattern. › Press Enter to trigger a test run.

luego presione P

Pattern Mode Usage › Press Esc to exit pattern mode. › Press Enter to filter by a filenames regex pattern. pattern › Start typing to filter by a filename regex pattern.

Esto es después de que quería ejecutar el archivo ''index.es6.js'' en la carpeta ''Iniciar sesión''

Pattern Mode Usage › Press Esc to exit pattern mode. › Press Enter to filter by a filenames regex pattern. pattern › login/index Pattern matches 1 file › src/containers/Login/index.es6.test.js

Así es como ejecuto pruebas en un archivo específico.


Para ejecutar una prueba específica, deberá usar el comando jest . npm test no funcionará. Para acceder a jest directamente en la línea de comandos, instálelo a través de npm i -g jest-cli o yarn global add jest-cli .

Luego, simplemente ejecute su prueba específica con jest bar.spec.js

Nota : No tiene que ingresar la ruta completa a su archivo de prueba. El argumento se interpreta como una expresión regular. Es suficiente cualquier parte de la ruta completa que identifique un archivo de forma exclusiva.


Para ejecutar una prueba individual:

ValidationUtil es mi módulo ValidationUtil.spec.js

npm test -t ValidationUtil

-t -> después de poner una expresión regular que contiene el nombre de la prueba


Puede usar el nombre del archivo con la prueba npm -:

prueba npm - nombreDeArchivo.jsx


Si ejecuta npm >= 5.2.0 y ha instalado jest localmente como devDependencies con npm i -d jest , puede ejecutar jest en un archivo en particular haciendo npx jest /path/to/your/spec.js


Tienes dos opciones:

  • Opción 1: línea de comando. Puedes ejecutar el siguiente comando

node ''/Users/complete-path-to-you-project/your-project/node_modules/.bin/jest'' ''/Users/complete-path-to-you-project/your-project/path-to-your-file-within-the-project/your-file.spec.ts''

Esto evita que instales Jest a nivel mundial. Usas la broma utilizada por tu proyecto.

  • Opción 2: si está utilizando VS Code , tiene un excelente complemento para hacer esto: Jest Runner . Le permite no solo ejecutar pruebas archivo por archivo, sino incluso suites y especificaciones específicas simplemente haciendo clic con el botón derecho en las pruebas que desea ejecutar.

Todo lo que tienes que hacer es cantar el encantamiento mágico:

npm test -- SomeTestFileToRun

Lo independiente -- es la magia * nix para marcar el final de las opciones, lo que significa (para NPM) que todo después de eso se pasa al comando que se está ejecutando, en este caso jest . Como comentario adicional, puede mostrar notas de uso de bromas diciendo

npm test -- --help

De todos modos, cantando

npm test -- Foo

ejecuta las pruebas en el archivo nombrado ( FooBar.js ). Sin embargo, debe tener en cuenta que:

  • Jest trata el nombre como sensible a mayúsculas y minúsculas, por lo que si está utilizando un sistema de archivos que no distingue entre mayúsculas y minúsculas (como Windows NTFS), puede encontrar lo que parece ser extraño.

  • Jest parece tratar la especificación como un prefijo.

Entonces el encantamiento anterior

  • Ejecute FooBar.js , Foo.js y FooZilla.js
  • Pero NO foo.js

Usar npm test no significa que jest se instale globalmente. Simplemente significa que "prueba" está asignada al uso de jest en su paquete.json

Lo siguiente es lo que funcionó para mí, en el nivel raíz del proyecto:

node_modules/.bin/jest [args]

Los argumentos pueden ser el archivo de prueba que desea ejecutar o el directorio que contiene varios archivos.


si usa yarn , puede agregar el archivo .spec.js o .test.js directamente después de:

yarn test src/lib/myfile.test.js

Esta es la parte de mi package.json con jest install como paquete local (eliminó las partes relevantes):

{ ... "scripts": { "test": "jest", "testw": "jest --watch", "testc": "jest --coverage", ... }, "devDependencies": { "jest": "^18.1.0", ... }, }


Jest usará lo que pases como un patrón regex . Eso coincidirá para.

Si desea ejecutar un archivo de prueba específico. Entonces, la mejor manera de hacerlo es precisar el camino completo hacia él. (También puede precisar una determinada ruta relativa como (src / XFolder / index.spec.ts)).

La forma más fácil de proporcionar la ruta completa en el directorio y en Linux es:

jest $PWD/index.spec.ts

Tenga en cuenta el uso de la variable $ PWD .

Para ventanas ! (Para actualizarse)