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
devDependency
IN packages.json
:"devDependencies": { "mocha": "^3.2", ... }
- Uruchom
npm install
w swoim katalogu, package.json
aby 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/**/*.js
bę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 args
i port
właściwości do meczu.
Kluczową różnicą dla mnie było upewnienie się, że mokka jest włączona node_modules
, użycie program
do wskazania pliku wykonywalnego i args
konieczność debug-brk=x
wskazania 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.json
w 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.json
może zawierać scripts
tag, 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 test
jest 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_modules
i być może będziesz musiał zaktualizować cwd
ostatnią 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",