2015-12-03 8 views
11

Meine Komponententests werden mit Karma/Jasmine durch Grunt ausgeführt. Wenn ich rufeWie Debuggen von Jasmin-Tests, die von Grunt in Visual Studio Code ausgeführt werden?

grunt test 

die Tests werden von der Befehlszeile ausgeführt.

Wenn ich das Projekt in Visual Studio Code öffne, kann ich den gleichen Befehl mit Tasks: Run Test Task ausführen. VSCode führt Grunt mit dem Parameter test aus und zeigt die Ausgabe an.

Wie kann ich die Testfälle debuggen, die von VSCode in diesem Fall ausgeführt werden? Wenn ich F5 drücke, wird die Vorlagendatei launch.json geöffnet. Was muss ich für program, args usw. bereitstellen, um dieselben Testfälle zu starten/zu debuggen, die von grunt test ausgeführt werden?

Ich habe versucht, die folgenden:

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

Diese erfolgreich startet den Grunt Prozess und die Tests ausgeführt werden, aber nicht an der Haltestelle Haltepunkte in meinem Testcode.

Darüber hinaus schließt (oder stürzt) der gesamte VSCode-Prozess nach ein paar Sekunden ab. Nicht sicher, ob das ein Fehler in VSCode oder ein Ergebnis der obigen Ausführungskonfiguration ist.

Antwort

2

Dieser Start Config funktioniert für mich in VS-Code 0.10.2:

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

einen Haltepunkt in meinem "test" Aufgabe Einstellen des VS-Code Debugger gemacht, es zu stoppen. Ich musste Grunt lokal installieren (in dem Ordner wo ich die Gruntfile habe).

+0

Ich habe diese Konfig versucht - und es schließt die ganze VS Code App, sobald die Testausführung beendet ist ... – nwinkler

+0

Ich versuche auch, dies jetzt herauszufinden - es sieht aus wie ich in der Lage, den Laufcode in der 'Gruntfile.js' aber nichts weiter draus ... was ich mir und @nwinkler wünsche. –

2

Ich glaube nicht, dass Sie derzeit etwas wie node --debug-brk grunt test tun können, wo Test Jasmin-Tests hochfahren wird - da Jasmin Knoten auf diesen Spezifikationsdateien ohne das Debug-Flag an Ort und Stelle aufrufen wird. Ich habe versucht, diese und hier ist, was ich habe:

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 

Dies ist nicht allzu hilfreich, da jetzt vscode Debugger bei 3691 suchen, während 46307 ist durch nichts inspiziert - und ich weiß nicht, wie zu sagen, vscode, um auch diesen Port zu hören.

Soooo was ich am Ende war denn hier geschrieben, die Antwort zu folgen: Debugging jasmine-node tests with node-inspector

Im Grunde meine vscode launch.json eine Config enthalten, die wie folgt aussah:

{ 
    "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" 
    ] 
} 

Hoffnung, das hilft.

+0

Danke, diese Konfiguration in launch.json funktioniert für mich. – cateyes

Verwandte Themen