
La depuración de código es una parte clave dentro del desarrollo de software, ya que facilita la identificación y corrección de errores de forma eficiente. Algo que también se puede hacer con las pruebas unitarias. En esta entrada, se explicarán los pasos para configurar Visual Studio Code (VS Code) para depurar pruebas unitarias Jest en proyectos Node.js con TypeScript, pasos que también se pueden adaptar a proyectos creados con JavaScript.
Preparación de un proyecto
Para depurar pruebas unitarias Jest en proyectos Node.js con TypeScript, en primer lugar, es necesario disponer de un proyecto Node.js que use Jest para la creación de las pruebas unitarias. Para lo que se puede seguir el tutorial “Creación de una librería TypeScript”, cuyo código está disponible en la cuenta de GitHub de Analytics Lane.
El de ejemplo anterior ya cuenta con Jest y pruebas unitarias de ejemplo, pero si se parte de otro proyecto en primer lugar se debe instar Jest, los tipos y ts-jest con la siguiente línea:
npm install --save-dev jest @types/jest ts-jest
Una vez instaladas las dependencias se debe crear y configurar el archivo jest.config.js
la raíz del proyecto. Para que Jest pueda compilar y ejecutar pruebas TypeScript es necesario agregar las siguientes líneas a este archivo:
module.exports = { preset: 'ts-jest', testEnvironment: 'node', };
Configuración de Visual Studio Code
Una vez configurado Jest, es el momento de configurar Visual Studio Code (VS Code) para ejecutar las pruebas. Para esto es necesario disponer de un archivo launch.json
en la carpeta .vscode
. Si no es así, el método más sencillo para crear uno es seleccionar “Ejecución y depuración” en la barra lateral izquierda (el icono con un botón de play y un bicho) y luego en cree un archivo launch.json


Una vez creado el archivo launch.json
solamente se tiene que abrir este y agrega una nueva configuración para Jest. La que debería tener un aspecto como el que se muestra a continuación:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Debug Jest Tests", "program": "${workspaceFolder}/node_modules/jest/bin/jest", "args": [ "--runInBand", "--no-cache", "-i", "${relativeFile}" ], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "windows": { "program": "${workspaceFolder}/node_modules/jest/bin/jest.cmd" } } ] }
En donde se crea una nueva configuración llamada Debug Jest Tests que ejecutará las pruebas en modo depuración. Para ello se indica la ruta al archivo ejecutable de Jest ${workspaceFolder}/node_modules/jest/bin/jest
, donde ${workspaceFolder}
es una variable que representa el directorio raíz del proyecto abierto en VS Code. Los argumentos que se le pasan a Jest son:
"--runInBand"
: Este argumento le indica a Jest que ejecute las pruebas en un solo hilo secuencialmente. Esto es útil cuando se depura código, ya que evita que las salidas de múltiples pruebas se mezclen, lo que facilita la comprensión de los resultados de la prueba."--no-cache"
: Jest almacena en caché los resultados de las pruebas para mejorar la velocidad de ejecución. Sin embargo, cuando se está depurando, es preferible desactivar esta caché para estar seguro de que se están viendo los resultados más recientes de las pruebas."-i"
: Este argumento, también conocido como--detectOpenHandles
, indica a Jest que imprima información sobre los “manejadores abiertos” al finalizar las pruebas. Los “manejadores abiertos” son recursos como conexiones a bases de datos o archivos que no se cerraron correctamente al finalizar una prueba. Esta opción puede ser útil para identificar posibles fugas de recursos durante la depuración de las pruebas."${relativeFile}"
: Este argumento especifica el archivo de prueba actual que se está depurando.${relativeFile}
es una variable que se expande para representar la ruta relativa del archivo de prueba en relación con el directorio raíz del proyecto. Al incluir este argumento, Jest ejecutará solo el archivo de prueba actual en lugar de todas las pruebas del proyecto, lo que agiliza el proceso de depuración.
Depuración de pruebas unitarias
En este punto, VS Code ya está configurado para depurar pruebas unitarias Jest en proyectos Node.js con TypeScript. Ahora solamente se deben seguir los siguientes pasos para iniciar el proceso:
- Abrir el archivo o archivos de prueba que desean depurar.
- Coloca puntos de interrupción en las líneas donde se desee detener la ejecución.
- Selecciona la configuración de depuración Debug Jest Tests en la vista de depuración de VS Code.
- Hacer clic sobre el botón de ”Iniciar depuración” para ejecutar Jest en modo de depuración.
Las pruebas se iniciarán y se ejecutarán hasta que se llega al primer punto de interrupción, momento en que la ejecución de código se parara.
Conclusiones
En esta entrada, se ha visto paso a paso cómo depurar pruebas unitarias Jest en proyectos Node.js con TypeScript usando VS Code. Usando para ello la herramienta de depuración nativa de VS Code. Al usar esta configuración, se podrá identificar y corregir fácilmente errores en las pruebas unitarias, mejorando así la calidad del código y acelerando el proceso de desarrollo.
Imagen de Gerd Altmann en Pixabay
Deja una respuesta