2015-12-03 14 views
11

Moje testy jednostkowe są prowadzone za pomocą Karma/Jasmine przez Grunt. Po uruchomieniutesty przeprowadzane są z wiersza poleceń.Jak debugować testy Jasmine uruchamiane z Grunta w kodzie Visual Studio?

Po otwarciu projektu w Visual Studio Code mogę uruchomić tego samego polecenia używając Tasks: Run Test Task. VSCode wykonuje Grunt z parametrem test i wyświetla dane wyjściowe.

Jak można debugować przypadków testowych, które są prowadzone przez VSCode w tym przypadku? Po naciśnięciu F5 plik launch.json szablon jest otwarty. Co trzeba zrobić, aby zapewnić program, args itd., Aby rozpocząć/debug tych samych testów, które są prowadzone przez grunt test?

Próbowałem następujące:

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

To skutecznie rozpoczyna proces Grunt i testy są wykonywane, ale nie zatrzyma się na punkty przerwania w moim kodzie testowym.

Poza tym, że zamyka się (lub awarii) cały proces VSCode po kilka sekund. Nie jestem pewien, czy to błąd w VSCode, czy wynik powyższej konfiguracji.

Odpowiedz

2

to launch config działa na mnie w Kodeksie VS 0.10.2:

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

Ustawianie przerwania w moim „testowym” zadanie wykonane debuggera kodu VS na tym poprzestać. Musiałem zainstalować lokalnie lokalnie (w folderze, gdzie mam Gruntfile).

+0

Próbowałem tej konfiguracji - i zamyka ona całą aplikację VS Code po zakończeniu wykonywania testu ... – nwinkler

+0

Próbuję również dowiedzieć się tego teraz - wygląda na to, że mogę im debugować uruchamiany kod w 'Gruntfile.js', ale nic poza tym ... to jest to, co myślę, że ja i @nwinkler chce. –

2

Nie sądzę, że można obecnie zrobić coś takiego, jak node --debug-brk grunt test, gdzie test rozpędzi testy jasmine - ponieważ jaśmin będzie wywoływał węzeł na tych plikach spec bez flagi debugowania. Próbowałem to i tutaj jest to, co mam:

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 

To nie jest zbyt pomocny, ponieważ teraz debugger vscode będzie patrząc na 3691 natomiast 46307 nie jest kontrolowane przez cokolwiek - a ja nie wiem jak to powiedzieć vscode, aby również słuchać tego portu.

Taaaak, co skończyło się robi było śledzić odpowiedzi zamieszczonych tutaj: Debugging jasmine-node tests with node-inspector

Zasadniczo mój vscode launch.json obejmował config, który wyglądał tak:

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

nadzieję, że pomoże.

+0

Dzięki, ta konfiguracja w launch.json działa dla mnie. – cateyes

Powiązane problemy