Czy wiesz, że po prostu wchodzisz do konfiguracji uruchamiania, umieszczasz kursor za lub między innymi konfiguracjami i naciskasz ctrl- spaceaby uzyskać aktualną, prawidłową konfigurację mokki automatycznie wygenerowaną?
Co dla mnie działa doskonale. W tym zatrzymywanie się w punktach przerwania. (Miałem też poprzedni, teraz przestarzały, który już nie działał z różnych powodów związanych z ustawieniami).
Od VSCode 1.21.1 (marzec 2018) daje to:
{
"version": "0.2.0",
"configurations": [
{
"name": "Mocha (Test single file)",
"type": "node",
"request": "launch",
"runtimeArgs": [
"${workspaceRoot}/node_modules/.bin/mocha",
"--inspect-brk",
"${relativeFile}",
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
}
Na marginesie: debug-brk
został usunięty (dla każdego, kto ma Node> = wersja co najmniej 8).
"args"
bloku:"--require", "${workspaceFolder}/tools/testSetup.js",
Ctrl+Space
automatycznie generowanej konfiguracji Mocha Testsdebug-brk
. Mimo to debugowanie z punktami przerwania działało dobrze.debug-brk
nie jest już używany, obsługiwany lub automatycznie wstawiany. Moja notatka dodatkowa tylko to wyjaśniła, ponieważ wspomina o tym wiele innych odpowiedzi.ctrl + space
aby działała.Jeśli nie chcesz używać
--debug-brk
+ Dołącz lub określ absolutną ścieżkę do swojej globalnej instalacji mokki (która będzie hamować, jeśli utrzymasz swój plik launch.json pod kontrolą wersji i masz wielu programistów na różnych maszynach), zainstaluj mokkę jako zależność od deweloperów i dodaj to do swojego launch.json:Pełna obsługa debugowania w testach po prostu naciskając klawisz F5.
--no-timeouts
zapewnia, że testy nie przekroczą limitu czasu, ponieważ zatrzymałeś się w punkcie przerwania, i--colors
upewnia się, że Mocha wyświetla kolory, mimo że nie wykrywa, że VS Code obsługuje kolory.źródło
sourceMaps: true
. Dzięki miliardowi!npm_config_myparam
do bloku env. W przypadku CLI może to wyglądaćnpm --myparam=myvalue test
.Innym sposobem jest użycie
--debug-brk
opcji wiersza polecenia mokka i domyślnegoAttach
ustawienia uruchamiania debugera Visual Studio Code.Sugerowane głębsze wyjaśnienie (od André)
Aby to zrobić:
Uruchom mokkę z wiersza poleceń za pomocą tego polecenia:
Teraz w programie VS Code kliknij ikonę Debug, a następnie wybierz
Attach
opcję obok przycisku Start. Dodaj punkty przerwania w kodzie VS, a następnie kliknij przycisk Start.źródło
"request": "attach"
plik do launch.json, jeśli nie istnieje - w przeciwnym razie będzie narzekać, że musisz określić program lub inny błąd.VS Code
specyficzne. Nie działa w normalnym VS 2015--debug-brk
jest to obecnie przestarzałe , dlatego sugeruję automatyczne tworzenie nowej konfiguracji debugowania w vscode , tak, również specjalnie dla mokki.Wykonałem tę pracę na VSCode na OS X 10.10. Po prostu zastąp
./settings/launch.json
plik tym.Jest również dostępny jako streszczenie tutaj .
Kluczowe wartości, które musisz zmienić, to
program
, które powinny być ustawione na_mocha
plik wykonywalny, aargs
które powinny być tablicą plików testowych.źródło
OpenDebug process has terminated unexpectedly
"runtimeExecutable"
się"C:/Program Files/nodejs/node.exe"
lub wszędzie tam, gdzie jest zainstalowany węzeł?Sposób działania w programie VS Code (1.8.2) w systemie Mac OS X to:
Mocha musi zostać zainstalowana w katalogu modułów npm.
źródło
Debug > Add Configuration...
menuNode.js
środowiskoMocha Tests
opcję z wyświetlonej listy rozwijanejargs
właściwościbreakpoint
Debug
ikonęMocha Tests
jako konfiguracjęStart debugging
przyciskźródło
Znalazłem sposób, aby to zrobić, który klasyfikuję jako obejście . Oczekuję, że zespół Visual Studio Code zapewni bardziej ostateczne rozwiązanie tego problemu, ale w międzyczasie zrobiłem to:
./settings/mocha.js
plik, który uruchamia mocha programowo przekazując argumenty jako listę plików do uruchomienia. Możesz zobaczyć pełny plik tutaj ;Stworzyłem konfigurację uruchamiania, która będzie działać
./settings/mocha.js
jakoprogram
i przekazuje pliki / wzorce plików, które musimy przetestować jako argumenty:Pełny przykład launch.json
To jest odpowiednik robienia
mocha test/unit/*.js test/unit/**/*.js
i teraz możemy używać punktów przerwania w naszych testach mokka.źródło
'sourceMaps': true, 'outDir': './build'
do mojej konfiguracji uruchamiania.Jeśli dodasz zmienną $ {file} na końcu listy argumentów, możesz rozpocząć debugowanie bezpośrednio z otwartego pliku:
źródło
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:
devDependency
INpackages.json
:"devDependencies": { "mocha": "^3.2", ... }
npm install
w swoim katalogu,package.json
aby upewnić się, że mocha jest teraz zainstalowana wnode_modules/
.vscode/launch.json
(lub w VS Code, naciśnij F1, zacznij pisać „launch” i wybierz „Debug: Open launch.json”)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:
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
iport
właściwości do meczu.Kluczową różnicą dla mnie było upewnienie się, że mokka jest włączona
node_modules
, użycieprogram
do wskazania pliku wykonywalnego iargs
koniecznośćdebug-brk=x
wskazania portu określonego wport
. 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, gdynpm 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.źródło
w pliku launch.json dodaj poniżej jeszcze 1 konfigurację
jeśli chcesz skonfigurować wersję węzła, po prostu dodaj
runtimeExecutable
takie poleźródło
Dla każdego, kto używa systemu Windows. Jeśli zainstalowałeś mokkę globalnie, to ustawienie programu na następującą ścieżkę zadziałało (zamień swoją nazwę użytkownika).
źródło
To działa u mnie na komputerze z systemem Windows 7. Mam mocha zainstalowaną globalnie, ale ta konfiguracja wskazuje na instalację projektu, aby uniknąć potrzeby ścieżki profilu użytkownika (przy okazji próbowałem użyć zmiennej% USERPROFILE% bez powodzenia). Mogę teraz ustawić punkty przerwania w moich testach mokki. Yay!
źródło
Dla tych, którzy używają chrząknięcia lub łyka, konfiguracja jest dość prosta.
Launch.json
Gruntfile.js
źródło
W wersji VSCode 1.13.0 (macOS) mają to wbudowane w konfiguracjach ->
Mocha Tests
.źródło
Używając Babel lub generując pliki javascript, ale umieszczając punkty przerwania w źródle - musisz upewnić się, że jest włączony
sourceMaps
i zdefiniowanyoutFiles
. Oto przykładowa konfiguracja, która dla mnie zadziałała.Uwaga - musisz zmodyfikować,
outFiles
aby uwzględnić wszystko, do czego chcesz dodać punkt przerwania. Może to być bardziej uciążliwe w przypadku monorepo i wielu zależnych projektów.źródło
1) Idź do
następnie
plik
2) Dodaj następującą konfigurację w launch.json -
3) Ustaw punkty przerwania w pliku testowym, a następnie naciśnij
F5
źródło
W przypadku korzystania z języka TypeScript następująca konfiguracja działa dla mnie w programie Visual Studio Code 0.8.0 (tsc 1.5.3)
tsconfig.json
Ważną rzeczą, na którą należy zwrócić uwagę, jest to, że generowane są mapy źródłowe i że katalog wyjściowy dla js jest ustawiony na
build
launch.json
Należy pamiętać, że
sourceMaps
jest ustawiony natrue
i żeoutDir
jest ustawiony nabuild
debugować
index.ts
dowolnym innym zaimportowanym pliku maszynopisumocha --debug-brk ./build/test/appTests.js
źródło
Oto przykład konfiguracji uruchamiania (launch.json) firmy Microsoft, która współpracuje z Mocha i umożliwia korzystanie z debuggera.
Jest tam również opis korzystania z opcji --debug-brk.
Wreszcie, oto alternatywna wersja sposobu debugowania kodu za pomocą testów Mocha przy użyciu pliku tasks.json programu VS Code i modułu uruchamiającego zadania Gulp.
źródło
Jeśli masz jakąś zależność w teście, łatwo go również dołączyć.
Na przykład używam
mongo-unit-helper
również testów jednostkowych zintegrowanych z bazą danych.package.json
skrypt to:mocha --recursive --require ./test/mongo-unit-helper.js --exit"
Mój
launch.json
wygląd wygląda tak:Rozwiązaniem jest umieścić
--require
oddzielnieargs
wlaunch.json
.źródło
Najprostsze rozwiązanie
Dodaj następujący kod do launch.json w folderze .vscode:
Możesz jednak dodać również argument limitu czasu:
źródło