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
devDependencyen packages.json:"devDependencies": { "mocha": "^3.2", ... }
- Ejecute
npm installen el directorio de su package.jsonpara 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/**/*.jsfuncionará 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 argsy portpara que coincida.
Las diferencias clave para mí fueron asegurarme de que mocha estuviera adentro node_modules, usar programpara apuntar al ejecutable y argsnecesitar debug-brk=xapuntar 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.jsonel 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.jsonPuede incluir una scriptsetiqueta 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 testse 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_modulesy es posible que deba actualizar cwdy ú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",