Erreurs courantes
Module introuvable './relative-path'
Si vous rencontrez une erreur indiquant que le module est introuvable, plusieurs causes sont possibles :
- Le chemin est mal orthographié. Assurez-vous que le chemin spécifié est correct.
- Vous utilisez peut-être
baseUrl
dans votretsconfig.json
. Vite n'intègre pastsconfig.json
par défaut. Si vous utilisez cette fonctionnalité, il pourrait être nécessaire d'installer manuellementvite-tsconfig-paths
.
- Vous utilisez peut-être
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
Alternativement, modifiez votre chemin pour qu'il ne soit plus relatif à la racine :
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- Assurez-vous de ne pas utiliser d'alias relatifs. Vite les interprète comme relatifs au fichier d'importation plutôt qu'à la racine du projet.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Échec de l'arrêt du worker
Cette erreur peut survenir lorsque la fonction fetch
de NodeJS est utilisée avec le paramètre pool: 'threads'
par défaut. Ce problème est documenté dans l'issue Timeout abort can leave process(es) running in the background #3077.
Pour contourner ce problème, vous pouvez basculer vers pool: 'forks'
ou pool: 'vmForks'
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks
Erreurs de segmentation et modules natifs
L'exécution de modules natifs NodeJS avec pool: 'threads'
peut provoquer des erreurs obscures 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, il est probable que le module natif ne soit pas conçu pour fonctionner de manière sûre dans un environnement multithread. Pour contourner ce problème, vous pouvez basculer vers pool: 'forks'
, qui exécute les cas de test dans plusieurs node:child_process
plutôt que dans plusieurs node:worker_threads
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks