Perdón por agregar otra respuesta, pero ninguna de las anteriores funcionó para mí a partir de VS Code 1.8.1 y el depurador de nodo estándar incluido en él. Esta es la forma en que lo resolví (con la guía de las respuestas anteriores aquí y de los documentos oficiales de depuración de VS Code Node.js ), por lo que hay una depuración de clic / pulsación de tecla:
- Asegúrese de que mocha esté instalado como
devDependency
en packages.json
:"devDependencies": { "mocha": "^3.2", ... }
- Ejecute
npm install
en el directorio de su package.json
para asegurarse de que mocha ahora esté instalado ennode_modules/
- Abra
.vscode/launch.json
(o en VS Code, presione F1, comience a escribir "iniciar" y seleccione "Depurar: Abrir launch.json")
- Haga clic en el botón azul "Agregar configuración" en la parte inferior derecha (o simplemente copie y pegue uno de los otros); este paso es opcional ... quiero decir, puede reutilizar una configuración existente. Pero sugiero agregar uno para que sea menos confuso.
- Cambie lo siguiente en su
launch.json
, luego elija el nuevo nombre de configuración en la ventana de depuración en VS Code y haga clic en la flecha verde para comenzar a depurar sus pruebas de nodo + mocha.
En la nueva configuración de launch.json:
"configurations": [{
"name": "whatever name you want to show in the VS Code debug list",
"type": "node",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/node_modules/mocha/bin/mocha",
"args": ["--debug-brk=5858", "--no-timeouts", "--colors", "test/**/*.js"],
"address": "localhost",
"port": 5858,
// the other default properties that are created for you are fine as-is
}, ...]
Esto supone que el patrón test/**/*.js
funcionará para el lugar donde coloque sus pruebas. Cambie según corresponda.
Siéntase libre de cambiar el puerto siempre que lo cambie en las propiedades args
y port
para que coincida.
Las diferencias clave para mí fueron asegurarme de que mocha estuviera adentro node_modules
, usar program
para apuntar al ejecutable y args
necesitar debug-brk=x
apuntar al puerto especificado en port
. El resto de lo anterior solo hace que las cosas sean más bonitas y fáciles.
Depende de usted y de su equipo si coloca .vscode/launch.json
el repositorio o no. Es un archivo solo IDE, pero todo su equipo podría usarlo así, no hay problema, ya que todas las rutas e instalaciones son relativas y explícitas.
Sugerencia: package.json
Puede incluir una scripts
etiqueta que también inicie mocha con algo como "test": "./node_modules/.bin/mocha"
, pero VS Code no la usa, sino que se usa cuando npm test
se ejecuta en la línea de comando. Este me confundió un poco. Anotarlo aquí en caso de que otros también se confundan.
EDITAR: VS Code 1.9.0 ha agregado una opción "Agregar configuración" en el menú desplegable de configuración de depuración, y puede elegir "Node.js Mocha Tests" que ayudan a simplificar la mayor parte de lo anterior. Aún debe asegurarse de que mocha esté en su node_modules
y es posible que deba actualizar cwd
y último runtimeArgs
(que es el patrón para encontrar sus pruebas) para que apunte a las rutas adecuadas. Pero una vez que establezca esas dos propiedades, debería funcionar prácticamente desde allí.
"args"
bloque:"--require", "${workspaceFolder}/tools/testSetup.js",