2015-12-03 13 views
11

I miei test di unità vengono eseguiti utilizzando Karma/Jasmine attraverso Grunt. Quando corroCome eseguire il debug dei test Jasmine eseguiti da Grunt in Visual Studio Code?

grunt test 

i test vengono eseguiti dalla riga di comando.

All'apertura del progetto in Visual Studio Code, è possibile eseguire lo stesso comando utilizzando Tasks: Run Test Task. VSCode esegue Grunt con il parametro test e mostra l'output.

Come posso eseguire il debug dei casi di test eseguiti da VSCode in questo caso? Quando si preme F5, viene aperto il file modello launch.json. Che cosa è necessario fornire per program, args ecc. Per avviare/eseguire il debug degli stessi casi di test eseguiti da grunt test?

Ho provato quanto segue:

  • program: /usr/local/bin/grunt
  • args: ["test"]

Questo avvia con successo il processo di Grunt e vengono eseguiti i test, ma non si ferma al punti di interruzione nel mio codice di prova.

Oltre a ciò, chiude (o arresta) l'intero processo VSCode dopo un paio di secondi. Non sono sicuro che si tratti di un bug in VSCode o di un risultato della configurazione di esecuzione precedente.

risposta

2

Questo lancio di configurazione funziona per me in VS Codice 0.10.2:

{ 
    "name": "grunt", 
    "type": "node", 
    "request": "launch", 
    "program": "/usr/local/bin/grunt", 
    "args": ["test"], 
    "stopOnEntry": false 
} 

Impostare un punto di interruzione nel mio compito "test" fatto il debugger Codice VS di fermarsi lì. Ho dovuto installare localmente grunt (nella cartella in cui ho il Gruntfile).

+0

Ho provato quella configurazione - e chiude l'intera app VS Code una volta che l'esecuzione del test termina ... – nwinkler

+0

Sto anche cercando di capirlo ora - sembra im in grado di eseguire il debug del codice di esecuzione nel 'Gruntfile.js' ma nulla al di fuori di quello ... che è quello che penso che io e @nwinkler vogliamo. –

2

Non penso che al momento sia possibile fare qualcosa come lo node --debug-brk grunt test in cui il test farà girare i test del gelsomino - poiché jasmine invocherà il nodo su questi file spec senza il flag di debug sul posto. Ho provato questo e qui è quello che ho ottenuto:

node --debug-brk=3691 --nolazy ../../../usr/local/bin/grunt kftest --schema=9.2.1 --dbtype=sqlite --target=builder/properties --spec=test/builder/properties/properties-spec.js 
Debugger listening on port 3691 
Running "kftest" task 
>> going to run with spec: test/builder/properties/properties-spec.js 
>> command: node --debug-brk=46307 /Users/computername/project/node_modules/jasmine-node/lib/jasmine-node/cli.js test/builder/properties/properties-spec.js 
Running "shell:kftest" (shell) task 
Debugger listening on port 46307 

Questo non è troppo utile dal momento che ora debugger di vscode sarà guardando 3691, mentre 46307 non è ispezionata da nulla - e non so come dire vscode per ascoltare anche quella porta.

Soooo quello che ho finito per fare era di seguire la risposta postato qui: Debugging jasmine-node tests with node-inspector

Fondamentalmente il mio vscode launch.json comprendeva una configurazione che si presentava così:

{ 
    "name": "Jasmine-Node Debugging", 
    "cwd": "${workspaceRoot}", 
    "program": "${workspaceRoot}/node_modules/jasmine-node/lib/jasmine-node/cli.js", 
    "request": "launch", 
    "type": "node", 
    "args": [ 
    "test/builder/properties/properties-spec.js" 
    ] 
} 

Speranza che aiuta.

+0

Grazie, questa configurazione in launch.json funziona per me. – cateyes

Problemi correlati