Debugowanie
TIP
Podczas debugowania testów możesz użyć argumentu CLI --test-timeout
, aby zapobiec przekroczeniu limitu czasu testów, gdy wykonanie zostanie zatrzymane w punktach przerwania.
VS Code
W VS Code szybkim sposobem na debugowanie testów jest użycie JavaScript Debug Terminal
. Otwórz nowy JavaScript Debug Terminal
i uruchom npm run test
lub bezpośrednio vitest
. Działa to z każdym kodem uruchamianym w Node.js, więc będzie działać z większością frameworków testowych JS.
Możesz również dodać dedykowaną konfigurację uruchamiania, aby debugować plik testowy w VS Code:
{
// Aby uzyskać więcej informacji, odwiedź: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debugowanie bieżącego pliku testowego",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
Następnie w zakładce debugowania upewnij się, że wybrano opcję „Debugowanie bieżącego pliku testowego”. Możesz wtedy otworzyć plik testowy, który chcesz debugować i nacisnąć klawisz F5, aby rozpocząć debugowanie.
Tryb przeglądarki
Aby debugować Tryb przeglądarki Vitest, przekaż --inspect
lub --inspect-brk
w CLI lub zdefiniuj to w swojej konfiguracji Vitest:
vitest --inspect-brk --browser --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
inspectBrk: true,
fileParallelism: false,
browser: {
name: 'chromium',
provider: 'playwright',
},
},
});
Domyślnie Vitest używa portu 9229
jako portu do debugowania. Możesz to zmienić, przekazując wartość w --inspect-brk
:
vitest --inspect-brk=127.0.0.1:3000 --browser --no-file-parallelism
Użyj poniższej konfiguracji złożonej VSCode do uruchamiania Vitest i podłączania debugera w przeglądarce:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Uruchamianie Vitest w przeglądarce",
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"console": "integratedTerminal",
"args": ["--inspect-brk", "--browser", "--no-file-parallelism"]
},
{
"type": "chrome",
"request": "attach",
"name": "Podłączanie do Vitest w przeglądarce",
"port": 9229
}
],
"compounds": [
{
"name": "Debugowanie Vitest w przeglądarce",
"configurations": ["Podłączanie do Vitest w przeglądarce", "Uruchamianie Vitest w przeglądarce"],
"stopAll": true
}
]
}
IntelliJ IDEA
Utwórz konfigurację uruchomieniową Vitest. Użyj następujących ustawień, aby uruchomić wszystkie testy w trybie debugowania:
Ustawienie | Wartość |
---|---|
Katalog roboczy | /ścieżka/do/katalogu-głównego-projektu |
Następnie uruchom tę konfigurację w trybie debugowania. IDE zatrzyma się w punktach przerwania JS/TS ustawionych w edytorze.
Inspektor Node.js, np. Chrome DevTools
Vitest umożliwia również debugowanie testów bez IDE. Wymaga to jednak, aby testy nie były wykonywane równolegle. Użyj jednego z poniższych poleceń, aby uruchomić Vitest.
# Aby uruchomić w pojedynczym workerze
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread
# Aby uruchomić w pojedynczym procesie potomnym
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork
# Aby uruchomić w trybie przeglądarki
vitest --inspect-brk --browser --no-file-parallelism
Jeśli używasz Vitest 1.1 lub nowszego, możesz również po prostu podać flagę --no-file-parallelism
:
# Jeśli tryb puli jest nieznany
vitest --inspect-brk --no-file-parallelism
Po uruchomieniu Vitest zatrzyma wykonanie i będzie oczekiwać, aż otworzysz narzędzia deweloperskie, które mogą połączyć się z inspektorem Node.js. Możesz użyć Chrome DevTools, otwierając chrome://inspect
w przeglądarce.
W trybie watch
możesz pozostawić debuger otwarty podczas ponownych przebiegów testów, używając opcji --poolOptions.threads.isolate false
.