Debugging
TIP
Durante il debug dei test, puoi utilizzare l'argomento CLI --test-timeout
per evitare che i test scadano quando ti fermi ai breakpoint.
VSCode
Un modo rapido per eseguire il debug dei test in VSCode è utilizzare il JavaScript Debug Terminal
. Apri un nuovo JavaScript Debug Terminal
ed esegui npm run test
o vitest
direttamente. Questo metodo funziona con qualsiasi codice eseguito in Node, quindi è compatibile con la maggior parte dei framework di test JS.
Puoi anche aggiungere una configurazione di avvio specifica per eseguire il debug di un singolo file di test in VSCode:
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug del file di test corrente",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
Successivamente, nella scheda Debug, assicurati che sia selezionato 'Debug Current Test File'. Apri il file di test di cui desideri eseguire il debug e premi F5 per avviare il debug.
IntelliJ IDEA
Crea una configurazione di esecuzione 'Node.js'. Utilizza le seguenti impostazioni per eseguire tutti i test in modalità debug:
Impostazione | Valore |
---|---|
Working directory | /path/to/your-project-root |
JavaScript file | ./node_modules/vitest/vitest.mjs |
Application parameters | run --threads false |
Quindi, esegui questa configurazione in modalità debug. L'IDE si fermerà sui breakpoint JS/TS impostati nell'editor.
Node Inspector, ad esempio Chrome DevTools
Vitest supporta anche il debug dei test senza un IDE. Tuttavia, questo richiede che i test non vengano eseguiti in parallelo. Utilizza uno dei seguenti comandi per avviare Vitest.
# To run in a single worker
vitest --inspect-brk --single-thread
# To run in a child process
vitest --inspect-brk --single-thread --no-threads
Una volta avviato, Vitest sospenderà l'esecuzione in attesa che tu apra gli strumenti di sviluppo che possono connettersi a NodeJS inspector. Puoi utilizzare Chrome DevTools aprendo chrome://inspect
nel browser.
In modalità watch, puoi mantenere il debugger aperto durante le riesecuzioni dei test utilizzando le opzioni --single-thread --isolate false
.