Ladění
TIP
Při ladění testů se vám mohou hodit následující možnosti:
--test-timeout=0
, aby testy nevypršely (časově) při zastavení na bodech přerušení--no-file-parallelism
, aby se zabránilo paralelnímu spouštění testových souborů
VS Code
Rychlý způsob ladění testů ve VS Code je pomocí JavaScript Debug Terminalu
. Otevřete nový JavaScript Debug Terminal
a spusťte npm run test
nebo přímo vitest
. To funguje s jakýmkoli kódem spuštěným v Node.js, takže bude fungovat s většinou JS testovacích frameworků.
Můžete také přidat speciální konfiguraci spuštění pro ladění testovacího souboru ve VS Code:
{
// Pro více informací navštivte: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Ladit aktuální testovací soubor",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
Poté v záložce ladění ověřte, zda je vybráno 'Ladit aktuální testovací soubor'. Poté můžete otevřít testovací soubor, který chcete ladit, a stisknout F5 pro spuštění ladění.
Režim prohlížeče
Pro ladění režimu prohlížeče Vitest použijte --inspect
nebo --inspect-brk
v CLI, nebo je definujte ve své konfiguraci Vitest:
vitest --inspect-brk --browser --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
inspectBrk: true,
fileParallelism: false,
browser: {
provider: 'playwright',
instances: [{ browser: 'chromium' }],
},
},
});
Ve výchozím nastavení Vitest použije port 9229
jako port pro ladění. Můžete jej přepsat předáním hodnoty parametru --inspect-brk
:
vitest --inspect-brk=127.0.0.1:3000 --browser --no-file-parallelism
Použijte následující složenou konfiguraci VSCode ke spuštění Vitest a připojení debuggeru v prohlížeči:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Spustit Vitest v prohlížeči",
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"console": "integratedTerminal",
"args": ["--inspect-brk", "--browser", "--no-file-parallelism"]
},
{
"type": "chrome",
"request": "attach",
"name": "Připojit k Vitestu v prohlížeči",
"port": 9229
}
],
"compounds": [
{
"name": "Ladit Vitest v prohlížeči",
"configurations": ["Připojit k Vitestu v prohlížeči", "Spustit Vitest v prohlížeči"],
"stopAll": true
}
]
}
IntelliJ IDEA
Vytvořte konfiguraci spuštění Vitest. Použijte následující nastavení ke spuštění všech testů v režimu ladění:
Nastavení | Hodnota |
---|---|
Pracovní adresář | /cesta/k/vašemu-kořenovému-projektu |
Poté spusťte tuto konfiguraci v režimu ladění. IDE se zastaví na JS/TS bodech přerušení nastavených v editoru.
Node Inspector, např. Chrome DevTools
Vitest také podporuje ladění testů bez IDE. To však vyžaduje, aby testy neběžely paralelně. Použijte jeden z následujících příkazů ke spuštění Vitest.
# Spustit v jednom workeru
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread
# Spustit v jednom podřízeném procesu
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork
# Spustit v režimu prohlížeče
vitest --inspect-brk --browser --no-file-parallelism
Pokud používáte Vitest 1.1 nebo vyšší, můžete také jednoduše zadat příznak --no-file-parallelism
:
# Pokud je pool neznámý
vitest --inspect-brk --no-file-parallelism
Jakmile se Vitest spustí, pozastaví provádění a počká, až otevřete vývojářské nástroje, které se dokáží připojit k Node.js inspektoru. K tomu můžete použít Chrome DevTools otevřením chrome://inspect
v prohlížeči.
V režimu sledování můžete nechat debugger otevřený během opakovaných spuštění testů pomocí možnosti --poolOptions.threads.isolate false
.