Puedo probar varios archivos usando Jest, pero no puedo entender cómo probar un solo archivo.
Yo tengo:
- correr
npm install jest-cli --save-dev
- Actualizado
package.json
: `{..." scripts ": {" test ":" jest "} ...} - Escrito una serie de pruebas.
La ejecución npm test
funciona como se esperaba (actualmente ejecuta 14 pruebas).
¿Cómo pruebo un solo archivo, por ejemplo, prueba app/foo/__tests__/bar.spec.js
?
He intentado ejecutar npm test app/foo/__tests__/bar.spec.js
(desde la raíz del proyecto), pero aparece el siguiente error:
npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'
Gracias
jest bar.spec.js
dajest: command not found
. He confirmado que Jest está instalado (npm list -g jest
muestra[email protected]
). FWIW, cuando corro usandonpm test
lo usajest-cli
.jest-cli
es el módulo correcto, instálelo globalmentenpm install -g jest-cli
.jest
en npm es ... algo másnode_modules/.bin/jest args
fit
lugar deit
.Todo lo que tienes que hacer es cantar el encantamiento mágico:
Lo independiente
--
es * nix magic para marcar el final de las opciones, lo que significa (para NPM) que todo después de eso se pasa al comando que se ejecuta, en este casojest
. Como comentario adicional, puede mostrar notas de uso de bromas diciendoDe todos modos, cantando
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
FooBar.js
,Foo.js
yFooZilla.js
foo.js
fuente
npm ERR! Error: ENOENT, open '<path to project>/node_modules/<name of file>/package.json'
npm test ToDoForm.test.js
funcionó mientrasjest ToDoForm.test.js
no lo hacíaPara ejecutar una prueba individual:
-t
- Después de poner una expresión regular que contiene el nombre de la prueba.fuente
Usar
npm test
no significa que jest se instale globalmente. Simplemente significa que "prueba" está asignada al uso de jest en su paquete.jsonLo siguiente es lo que funcionó para mí, en el nivel raíz del proyecto:
Los argumentos pueden ser el archivo de prueba que desea ejecutar o el directorio que contiene varios archivos.
fuente
node_modules/.bin
es usar elnpx
comando. Por ejemplonpx jest [args]
si lo usa
yarn
, puede agregar el archivo.spec.js
o.test.js
directamente después de:Esta es la parte de my
package.json
con jest install como un paquete local (eliminó las partes relevantes):fuente
Puede usar el nombre del archivo con
npm test --
:fuente
Si está ejecutando
npm >= 5.2.0
y ha instalado jest localmente comodevDependencies
connpm i -d jest
, puede ejecutar jest en un archivo en particular haciendonpx jest /path/to/your/spec.js
fuente
Estamos usando nrwl-nx con angular . En este caso podemos usar este comando:
notas:
npm test
ejecutará el script de prueba especificado enpackage.json
:"test:client": "ng test client"
<ng-project>
es el nombre de un proyecto enangular.json
"defaultProject"
(especificado enangular.json
, se utilizará ) (por lo que debe especificarlo, cuando la prueba no esté en su proyecto predeterminado)angular.json
navegar a"project"
-"<ng-project>"
-"architect"
-"test"
"builder"
, que en nuestro caso es:"@nrwl/jest:jest"
npm test server -- --help
para ver todas las opciones disponibles--testFile
que se usa aquífuente
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.
Presione W
luego presione P
Esto es después de que quería ejecutar el archivo 'index.es6.js' en la carpeta 'Iniciar sesión'
Así es como ejecuto pruebas en un archivo específico.
fuente
También se puede lograr mediante
$ jest --findRelatedTests path/to/fileA.js
ref ( https://jestjs.io/docs/en/cli#running-from-the-command-line )
¿Cómo se puede lograr eso en Nx monorepo? Aquí está la respuesta
user@host:/path/to/workspace$ npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts
ref y más información ( https://github.com/satminav/nx-qa/issues/6 )
fuente
Acabo de instalar Jest como globalmente y luego corrí
jest myFileToTest.spec.js
y funcionófuente
Tienes dos opciones:
Esto evita que instales Jest a nivel mundial. Usas la broma utilizada por tu proyecto.
fuente
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. (Puede precisar demasiado 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:
Tenga en cuenta el uso de la variable $ PWD .
Para ventanas ! (Para actualizarse)
fuente
Con Angular y Jest puedes agregar esto a package.json en "scripts"
Luego, para ejecutar la prueba unitaria para un archivo específico, puede escribir este comando en su terminal
fuente
No es necesario pasar por el camino completo. Solo úsalo
regex
pattern
.https://jestjs.io/docs/en/cli.html#--testnamepatternregex
fuente