Przepraszam za dodanie kolejnej odpowiedzi, ale żadna z poprzednich nie działała dla mnie od wersji VS Code 1.8.1 i standardowego debugera Node w nim zawartego. Oto sposób, w jaki go rozwiązałem (ze wskazówkami z poprzednich odpowiedzi tutaj i z oficjalnej dokumentacji debugowania VS Code Node.js ), więc jest debugowanie jednym kliknięciem / naciśnięciem klawisza:
- Zapewnić mokka jest instalowany jako
devDependencyIN packages.json:"devDependencies": { "mocha": "^3.2", ... }
- Uruchom
npm installw swoim katalogu, package.jsonaby upewnić się, że mocha jest teraz zainstalowana wnode_modules/
- Otwórz
.vscode/launch.json(lub w VS Code, naciśnij F1, zacznij pisać „launch” i wybierz „Debug: Open launch.json”)
- Kliknij niebieski przycisk „Dodaj konfigurację” w prawym dolnym rogu (lub po prostu skopiuj i wklej jedną z pozostałych); ten krok jest opcjonalny ... mam na myśli, możesz ponownie użyć istniejącej konfiguracji. Ale proponuję dodać jeden, aby był mniej zagmatwany.
- Zmień następujące elementy w swoim
launch.json, a następnie wybierz nową nazwę konfiguracji w oknie debugowania w programie VS Code i kliknij zieloną strzałkę, aby rozpocząć debugowanie testów węzła + mokka!
W nowej konfiguracji w 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
}, ...]
Zakłada się, że wzór test/**/*.jsbędzie działał w miejscu, w którym umieścisz testy. Zmień odpowiednio.
Krępuj się zmienić port tak długo, jak zmienić go w oba argsi portwłaściwości do meczu.
Kluczową różnicą dla mnie było upewnienie się, że mokka jest włączona node_modules, użycie programdo wskazania pliku wykonywalnego i argskonieczność debug-brk=xwskazania portu określonego w port. Reszta powyższego sprawia, że wszystko jest ładniejsze i łatwiejsze.
To od Ciebie i Twojego zespołu zależy, czy umieścisz .vscode/launch.jsonw repozytorium, czy nie. Jest to plik tylko IDE, ale cały Twój zespół mógłby go używać w ten sposób, nie ma problemu, ponieważ wszystkie ścieżki i instalacje są względne i jawne.
Wskazówka: package.jsonmoże zawierać scriptstag, który również uruchamia mokkę z czymś podobnym "test": "./node_modules/.bin/mocha", ale nie jest używany przez VS Code - zamiast tego jest używany, gdy npm testjest uruchamiany w wierszu poleceń. To mnie trochę zdezorientowało. Zauważmy to tutaj na wypadek, gdyby inni też się zdezorientowali.
EDYCJA: VS Code 1.9.0 dodał opcję „Dodaj konfigurację” w menu rozwijanym konfiguracji debugowania i można wybrać opcję „Testy mokki Node.js”, które pomogą uprościć większość powyższych. Nadal musisz upewnić się, że mokka jest w twoim node_modulesi być może będziesz musiał zaktualizować cwdostatnią runtimeArgs(co jest wzorem do wyszukiwania twoich testów), aby wskazywały odpowiednie ścieżki. Ale kiedy ustawisz te dwie właściwości, powinno to działać prawie od tego momentu.
"args"bloku:"--require", "${workspaceFolder}/tools/testSetup.js",