¿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+Space
la 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-brk
ya no es necesario utilizarlo, admitirlo o insertarlo automáticamente. Mi nota al margen solo aclaró esto, ya que muchas otras respuestas lo mencionan.ctrl + space
que 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-timeouts
se asegura de que sus pruebas no agoten el tiempo de espera porque se detuvo en un punto de interrupción, y--colors
se asegura de que Mocha genere colores aunque no detecte que VS Code admite colores.fuente
sourceMaps: true
. ¡Mil millones de gracias!npm_config_myparam
el bloque env. En qué parte de la CLI podría versenpm --myparam=myvalue test
.Otra forma es usar la
--debug-brk
opción de línea de comando de mocha y la configuración deAttach
inicio 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
Attach
de 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 Code
específico. No funciona en VS normal 2015--debug-brk
está 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.json
archivo con esto.También está disponible como resumen aquí .
Los valores clave que necesita cambiar son
program
, que deben establecerse en el_mocha
ejecutable 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.js
entornoMocha Tests
opción de la lista desplegable que apareceargs
propiedadbreakpoint
Debug
iconoMocha Tests
como configuraciónStart debugging
botó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.js
archivo 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.js
comoprogram
y 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/**/*.js
y 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:
devDependency
enpackages.json
:"devDependencies": { "mocha": "^3.2", ... }
npm install
en el directorio de supackage.json
para 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/**/*.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
yport
para que coincida.Las diferencias clave para mí fueron asegurarme de que mocha estuviera adentro
node_modules
, usarprogram
para apuntar al ejecutable yargs
necesitardebug-brk=x
apuntar 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.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 unascripts
etiqueta que también inicie mocha con algo como"test": "./node_modules/.bin/mocha"
, pero VS Code no la usa, sino que se usa cuandonpm 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 actualizarcwd
y ú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
runtimeExecutable
campo 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
sourceMaps
y definiroutFiles
. Aquí hay una configuración de ejemplo que funcionó para mí.Nota: deberá modificar
outFiles
para 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
F5
fuente
Cuando uso TypeScript, la siguiente configuración me funciona en Visual Studio Code 0.8.0 (tsc 1.5.3)
tsconfig.json
Lo 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
build
launch.json
Tenga en cuenta que
sourceMaps
está configurado entrue
y queoutDir
está configurado enbuild
depurar
index.ts
cualquier otro archivo mecanografiado importadomocha --debug-brk ./build/test/appTests.js
fuente
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-helper
pruebas unitarias integradas con la base de datos.package.json
el guión es:mocha --recursive --require ./test/mongo-unit-helper.js --exit"
Mi
launch.json
apariencia es:Solución es poner
--require
por separado enargs
enlaunch.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