Ci scusiamo per l'aggiunta di un'altra risposta, ma nessuna delle precedenti ha funzionato abbastanza per me a partire da VS Code 1.8.1 e il debugger Node standard incluso in esso. Ecco il modo in cui l'ho risolto (con la guida dalle risposte precedenti qui e dai documenti ufficiali di debug di VS Code Node.js ) quindi c'è un clic / debug di pressione dei tasti:
- Assicurati che mocha sia installato come
devDependency
in packages.json
:"devDependencies": { "mocha": "^3.2", ... }
- Esegui
npm install
nella directory del tuo package.json
per assicurarti che mocha sia ora installato innode_modules/
- Apri
.vscode/launch.json
(o in VS Code, premi F1, inizia a digitare "launch" e seleziona "Debug: Open launch.json")
- Fare clic sul pulsante blu "Aggiungi configurazione" in basso a destra (o semplicemente copiare e incollare uno degli altri); questo passaggio è facoltativo ... Voglio dire, puoi riutilizzare una configurazione esistente. Ma suggerisco di aggiungerne uno per mantenerlo meno confuso.
- Cambia quanto segue nel tuo
launch.json
, quindi scegli il nuovo nome di configurazione nella finestra di debug in VS Code e fai clic sulla freccia verde per avviare il debug dei tuoi test node + mocha!
Nella nuova configurazione in 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
}, ...]
Ciò presuppone che il modello test/**/*.js
funzioni per dove metti i tuoi test. Modificare come appropriato.
Sentiti libero di cambiare la porta fintanto che la cambi in entrambe le proprietà args
e port
in modo che corrisponda.
Le differenze chiave per me erano assicurarmi che mocha fosse dentro node_modules
, usare program
per puntare all'eseguibile e args
dover debug-brk=x
puntare alla porta specificata in port
. Il resto di quanto sopra rende le cose più belle e più facili.
Sta a te e al tuo team decidere se inserire .vscode/launch.json
o meno il repository. È un file solo IDE, ma tutto il tuo team potrebbe usarlo in questo modo, nessun problema, poiché tutti i percorsi e le installazioni sono relativi ed espliciti.
Suggerimento: package.json
può includere un scripts
tag che avvia anche mocha con qualcosa di simile "test": "./node_modules/.bin/mocha"
, ma non viene utilizzato da VS Code, ma viene utilizzato quando npm test
viene eseguito dalla riga di comando. Questo mi ha confuso per un po '. Notandolo qui nel caso anche gli altri si confondano.
EDIT: VS Code 1.9.0 ha aggiunto un'opzione "Aggiungi configurazione" nel menu a discesa della configurazione di debug e puoi scegliere "Node.js Mocha Tests" che aiuta a semplificare la maggior parte di quanto sopra. Devi ancora assicurarti che mocha sia nel tuo node_modules
e potrebbe essere necessario aggiornare cwd
e last runtimeArgs
(che è il modello per trovare i tuoi test) per puntare ai percorsi appropriati. Ma una volta impostate queste due proprietà, dovrebbe funzionare più o meno da lì.
"args"
blocco:"--require", "${workspaceFolder}/tools/testSetup.js",