Erreurs courantes
Impossible de trouver le module ‘./relative-path’
Si vous recevez une erreur indiquant que le module ne peut pas être trouvé, cela peut signifier plusieurs choses différentes :
-
- Vous avez mal orthographié le chemin. Assurez-vous que le chemin est correct.
-
- Il est possible que vous comptiez sur
baseUrl
dans votretsconfig.json
. Vite ne prend pas en comptetsconfig.json
par défaut, vous devrez donc peut-être installervite-tsconfig-paths
vous-même, si vous comptez sur ce comportement.
- Il est possible que vous comptiez sur
Ou réécrivez votre chemin pour ne pas être relatif à la racine :
-
- Assurez-vous de ne pas avoir d’aliases relatifs. Vite les considère comme relatifs au fichier où l’importation a lieu au lieu de la racine.
Impossible de moquer “./mocked-file.js” car il est déjà chargé
Cette erreur se produit lorsque la méthode vi.mock
est appelée sur un module qui a déjà été chargé. Vitest lance cette erreur car cet appel n’a aucun effet puisque les modules mis en cache sont préférés.
N’oubliez pas que vi.mock
est toujours hoisté - cela signifie que le module a été chargé avant que le fichier de test ne commence à s’exécuter - très probablement dans un fichier de configuration. Pour corriger l’erreur, supprimez l’importation ou videz le cache à la fin d’un fichier de configuration - attention, le fichier de configuration et votre fichier de test feront référence à des modules différents dans ce cas.
Échec de la terminaison du worker
Cette erreur peut survenir lorsque fetch
de NodeJS est utilisé avec le paramètre par défaut pool: 'threads'
. Ce problème est suivi sur l’issue Timeout abort can leave process(es) running in the background #3077.
Comme solution, vous pouvez passer à pool: 'forks'
ou pool: 'vmForks'
.
Segfaults et erreurs de code natif
L’exécution de modules NodeJS natifs dans pool: 'threads'
peut entraîner des erreurs cryptiques provenant du code natif.
Segmentation fault (core dumped)
thread '<unnamed>' panicked at 'assertion failed
Abort trap: 6
internal error: entered unreachable code
Dans ces cas, le module natif n’est probablement pas construit pour être sûr pour les threads multiples. Comme solution, vous pouvez passer à pool: 'forks'
, qui exécute les cas de test dans plusieurs node:child_process
au lieu de plusieurs node:worker_threads
.