Ladění
TIP
Při ladění testů můžete použít argument CLI --test-timeout
, abyste zabránili vypršení časového limitu testů, když se zastaví na zarážkách.
VS Code
Rychlý způsob, jak ladit testy ve VS Code, je pomocí JavaScript Debug Terminal
. Otevřete nový JavaScript Debug Terminal
a spusťte npm run test
nebo přímo vitest
. Tento postup funguje s jakýmkoli kódem spuštěným v Node.js, takže je použitelný pro většinu 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é na kartě ladění zkontrolujte, zda je vybrána možnost 'Ladit aktuální testovací soubor'. Následně můžete otevřít testovací soubor, který chcete ladit, a stisknutím F5 spustit 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 to 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: {
name: 'chromium',
provider: 'playwright',
},
},
});
Ve výchozím nastavení Vitest používá port 9229
jako ladicí port. Můžete jej přepsat předáním hodnoty v --inspect-brk
:
vitest --inspect-brk=127.0.0.1:3000 --browser --no-file-parallelism
Použijte následující složenou konfiguraci VSCode pro spuštění Vitest a připojení debuggeru k prohlížeči:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Spustit Vitest v režimu prohlížeče",
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"console": "integratedTerminal",
"args": ["--inspect-brk", "--browser", "--no-file-parallelism"]
},
{
"type": "chrome",
"request": "attach",
"name": "Připojit k Vitest v režimu prohlížeče",
"port": 9229
}
],
"compounds": [
{
"name": "Ladit Vitest v režimu prohlížeče",
"configurations": ["Připojit k Vitest v režimu prohlížeče", "Spustit Vitest v režimu prohlížeče"],
"stopAll": true
}
]
}
IntelliJ IDEA
Vytvořte spouštěcí konfiguraci Vitest. Použijte následující nastavení pro 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 zarážkách nastavených v editoru.
Node Inspector, např. Chrome DevTools
Vitest také podporuje ladění testů bez IDE. To však vyžaduje, aby testy nebyly spouštěny souběžně. 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 mohou připojit k Node.js inspektoru. K tomu můžete použít Chrome DevTools tak, že v prohlížeči otevřete chrome://inspect
.
V režimu watch můžete nechat debugger otevřený během opakovaných spuštění testů s použitím možnosti --poolOptions.threads.isolate false
.