Débogage
TIP
Lors du débogage de tests, vous pouvez utiliser l'argument CLI --test-timeout
pour éviter que les tests ne dépassent le temps imparti lorsque vous êtes arrêté sur des points d'arrêt.
Visual Studio Code
Un moyen rapide de déboguer les tests dans Visual Studio Code est d'utiliser le JavaScript Debug Terminal
("Terminal de débogage JavaScript"). Ouvrez un nouveau JavaScript Debug Terminal
et exécutez npm run test
ou vitest
directement. Cette méthode fonctionne avec tout code exécuté sous Node et est donc compatible avec la plupart des frameworks de test JS.
Vous pouvez également ajouter une configuration de lancement dédiée pour déboguer un fichier de test dans Visual Studio Code :
{
// Pour plus d'informations, visitez : https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Déboguer le fichier de test actuel",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
Ensuite, dans l'onglet de débogage, assurez-vous que Déboguer le fichier de test actuel
est sélectionné. Vous pouvez ensuite ouvrir le fichier de test que vous souhaitez déboguer et appuyer sur F5 pour commencer le débogage.
IntelliJ IDEA
Créez une configuration d'exécution 'Node.js'. Utilisez les paramètres suivants pour exécuter tous les tests en mode débogage :
Paramètre | Valeur |
---|---|
Chemin du projet | /chemin/vers/votre-projet-racine |
Fichier JavaScript | ./node_modules/vitest/vitest.mjs |
Paramètres de l'application | run --pool forks |
Ensuite, exécutez cette configuration en mode débogage. L'IDE s'arrêtera aux points d'arrêt JS/TS définis dans l'éditeur.
Node Inspector, par exemple Chrome DevTools
Vitest prend également en charge le débogage des tests sans IDE. Cependant, cela nécessite que les tests soient exécutés de manière séquentielle. Utilisez l'une des commandes suivantes pour lancer Vitest.
# Pour exécuter dans un thread unique
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread
# Pour exécuter dans un seul processus enfant
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork
Si vous utilisez Vitest 1.1 ou une version ultérieure, vous pouvez également simplement fournir l'indicateur --no-file-parallelism
:
# Si pool est inconnu
vitest --inspect-brk --no-file-parallelism
Une fois que Vitest a démarré, il arrêtera l'exécution et attendra que vous ouvriez les outils de développement qui peuvent se connecter à l'inspecteur Node.js. Vous pouvez utiliser Chrome DevTools pour cela en ouvrant chrome://inspect
dans le navigateur.
En mode de surveillance, vous pouvez garder le débogueur ouvert pendant les réexécutions de tests en utilisant les options --poolOptions.threads.isolate false
.