¿Sabía que solo debe ingresar a su configuración de inicio, colocar el cursor después o entre sus otras configuraciones y presionar ctrl- spacepara obtener una configuración mocha válida y actual generada automáticamente?
Lo que funciona perfectamente bien para mí. Incluyendo detenerse en puntos de interrupción. (También tuve uno anterior, ahora desactualizado, que ya no funcionaba por varias razones relacionadas con el entorno).

A partir de VSCode 1.21.1 (marzo de 2018) esto produce:
{
"version": "0.2.0",
"configurations": [
{
"name": "Mocha (Test single file)",
"type": "node",
"request": "launch",
"runtimeArgs": [
"${workspaceRoot}/node_modules/.bin/mocha",
"--inspect-brk",
"${relativeFile}",
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
}
En una nota al debug-brk margen : está desaprobado (para cualquiera con Node> = Versión 8 al menos).
"args"bloque:"--require", "${workspaceFolder}/tools/testSetup.js",Ctrl+Spacela configuración de Mocha Tests autogenerada no teníadebug-brk. A pesar de que la depuración con puntos de interrupción funcionó bien.debug-brkya no es necesario utilizarlo, admitirlo o insertarlo automáticamente. Mi nota al margen solo aclaró esto, ya que muchas otras respuestas lo mencionan.ctrl + spaceque funcione.Si no desea usar
--debug-brk+ Adjuntar o establecer una ruta absoluta a su instalación global de mocha (que se detendrá si mantiene su launch.json bajo control de versiones y tiene múltiples desarrolladores en diferentes máquinas), instale mocha como una dependencia de desarrollo y agregue esto a su launch.json:Soporte completo de depuración en sus pruebas con solo presionar F5.
--no-timeoutsse asegura de que sus pruebas no agoten el tiempo de espera porque se detuvo en un punto de interrupción, y--colorsse asegura de que Mocha genere colores aunque no detecte que VS Code admite colores.fuente
sourceMaps: true. ¡Mil millones de gracias!npm_config_myparamel bloque env. En qué parte de la CLI podría versenpm --myparam=myvalue test.Otra forma es usar la
--debug-brkopción de línea de comando de mocha y la configuración deAttachinicio predeterminada del depurador de código de Visual Studio.Explicación más profunda sugerida (de André)
Para hacer esto:
Ejecute mocha desde la línea de comando usando este comando:
Ahora, en VS Code, haga clic en el ícono Depurar, luego seleccione
Attachde la opción al lado del botón de inicio. Agregue puntos de interrupción en VS Code y luego haga clic en iniciar.fuente
"request": "attach"a launch.json si no existe; de lo contrario, se quejará de que debe especificar un programa o algún otro error.VS Codeespecífico. No funciona en VS normal 2015--debug-brkestá en desuso , por eso sugiero que se cree automáticamente una nueva configuración de depuración en vscode , sí, también específicamente para mocha.Hice que esto funcione en VSCode en OS X 10.10. Simplemente reemplace su
./settings/launch.jsonarchivo con esto.También está disponible como resumen aquí .
Los valores clave que necesita cambiar son
program, que deben establecerse en el_mochaejecutable yargs, que deben ser una matriz de sus archivos de prueba.fuente
OpenDebug process has terminated unexpectedly"runtimeExecutable"en"C:/Program Files/nodejs/node.exe"o donde esté instalado Node?La forma en que lo hice funcionar en VS Code (1.8.2) en Mac OS X es:
Mocha debe instalarse en el directorio de módulos npm.
fuente
Debug > Add Configuration...menúNode.jsentornoMocha Testsopción de la lista desplegable que apareceargspropiedadbreakpointDebugiconoMocha Testscomo configuraciónStart debuggingbotónfuente
He descubierto una forma de hacer esto que clasifico como una solución alternativa . Espero que el equipo de Visual Studio Code proporcione una solución más definitiva para esto, pero mientras tanto esto es lo que he hecho:
./settings/mocha.jsarchivo que ejecuta mocha programáticamente pasando argumentos como una lista de archivos que se ejecutarán. Puedes ver el archivo completo aquí ;He creado una configuración de inicio que ejecutará
./settings/mocha.jscomoprogramy pasará los archivos / patrones de archivo que necesitamos probar como argumentos:Ejemplo completo de launch.json
Entonces esto es el equivalente a hacer
mocha test/unit/*.js test/unit/**/*.jsy ahora podemos usar puntos de interrupción en nuestras pruebas de moca.fuente
'sourceMaps': true, 'outDir': './build'a mi configuración de lanzamiento.Si agrega la variable $ {file} al final de la lista de argumentos, puede comenzar a depurar directamente desde el archivo que tiene abierto:
fuente
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:
devDependencyenpackages.json:"devDependencies": { "mocha": "^3.2", ... }npm installen el directorio de supackage.jsonpara asegurarse de que mocha ahora esté instalado ennode_modules/.vscode/launch.json(o en VS Code, presione F1, comience a escribir "iniciar" y seleccione "Depurar: Abrir launch.json")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: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
argsyportpara que coincida.Las diferencias clave para mí fueron asegurarme de que mocha estuviera adentro
node_modules, usarprogrampara apuntar al ejecutable yargsnecesitardebug-brk=xapuntar al puerto especificado enport. 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 unascriptsetiqueta que también inicie mocha con algo como"test": "./node_modules/.bin/mocha", pero VS Code no la usa, sino que se usa cuandonpm 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 actualizarcwdy últimoruntimeArgs(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í.fuente
en launch.json, agregue 1 configuración más a continuación
si necesita configurar la versión del nodo, simplemente agregue un
runtimeExecutablecampo como estefuente
Para cualquiera que use Windows. Si ha instalado mocha globalmente, configurar el programa en la siguiente ruta funcionó para mí (intercambie su nombre de usuario).
fuente
Esto me funciona en una máquina con Windows 7. Tengo mocha instalado globalmente, pero esta configuración apunta a la instalación del proyecto para evitar la necesidad de una ruta de perfil de usuario (que por cierto, intenté usar la variable% USERPROFILE% sin éxito). Ahora puedo establecer puntos de interrupción en mis pruebas de moca. ¡Hurra!
fuente
Para aquellos que usan gruñido o gulp, la configuración es bastante simple.
Launch.json
Gruntfile.js
fuente
En VSCode versión 1.13.0 (macOS), lo tienen integrado en configuraciones ->
Mocha Tests.fuente
Cuando utilice Babel o genere archivos javascript pero coloque puntos de interrupción en la fuente, debe asegurarse de habilitar
sourceMapsy definiroutFiles. Aquí hay una configuración de ejemplo que funcionó para mí.Nota: deberá modificar
outFilespara incluir todo lo que desee agregar un punto de interrupción. Esto puede resultar más tedioso cuando se trata de un monorepo y múltiples proyectos dependientes.fuente
1) Ir a
luego
expediente
2) Agregue la siguiente configuración en launch.json -
3) Establezca puntos de interrupción en el archivo de prueba y luego presione
F5fuente
Cuando uso TypeScript, la siguiente configuración me funciona en Visual Studio Code 0.8.0 (tsc 1.5.3)
tsconfig.jsonLo importante a tener en cuenta aquí es que los mapas de origen se generan y que el directorio de salida para js está configurado en
buildlaunch.jsonTenga en cuenta que
sourceMapsestá configurado entruey queoutDirestá configurado enbuilddepurar
index.tscualquier otro archivo mecanografiado importadomocha --debug-brk ./build/test/appTests.jsfuente
Aquí hay un ejemplo de configuración de lanzamiento (launch.json) de Microsoft, que funciona con Mocha y permite usar el depurador.
Además, hay una descripción de cómo usar la opción --debug-brk.
Finalmente, aquí hay una versión alternativa de cómo depurar código con pruebas Mocha usando el archivo tasks.json de VS Code y el ejecutor de tareas Gulp.
fuente
Si tiene alguna dependencia en la prueba, también es fácil adjuntarla.
Por ejemplo, también estoy usando
mongo-unit-helperpruebas unitarias integradas con la base de datos.package.jsonel guión es:mocha --recursive --require ./test/mongo-unit-helper.js --exit"Mi
launch.jsonapariencia es:Solución es poner
--requirepor separado enargsenlaunch.json.fuente
Solución más simple
Agregue el siguiente código a launch.json dentro de la carpeta .vscode:
Sin embargo, es posible que desee agregar también un argumento de tiempo de espera:
fuente