Errori Comuni
Impossibile trovare il modulo './relative-path'
Se ricevi un errore che indica che il modulo non è stato trovato, ciò potrebbe dipendere da diverse ragioni:
- Hai digitato male il percorso. Assicurati che il percorso sia corretto.
- Potresti fare affidamento su
baseUrl
nel tuotsconfig.json
. Vite non consideratsconfig.json
per impostazione predefinita, quindi potresti dover installarevite-tsconfig-paths
manualmente, se dipendi da questa configurazione.
- Potresti fare affidamento su
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
In alternativa, modifica il percorso in modo che non sia relativo alla root:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- Assicurati di non utilizzare alias relativi. Vite li interpreta come relativi al file di importazione anziché alla root del progetto.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Impossibile terminare il worker
Questo errore può verificarsi quando si utilizza fetch
di NodeJS con il pool
predefinito: 'threads'
. Questo problema è documentato nell'issue Timeout abort can leave process(es) running in the background #3077.
Come soluzione temporanea, puoi passare a pool: 'forks'
o pool: 'vmForks'
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks
Segfault e errori del codice nativo
L'utilizzo di moduli nativi NodeJS con pool: 'threads'
può causare errori criptici derivanti dal codice nativo.
Segmentation fault (core dumped)
thread '<unnamed>' panicked at 'assertion failed
Abort trap: 6
internal error: entered unreachable code
In questi casi, il modulo nativo probabilmente non è stato progettato per essere thread-safe. Come soluzione temporanea, puoi passare a pool: 'forks'
, che esegue i casi di test in più processi node:child_process
invece di più thread node:worker_threads
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks