Errores comunes
No se puede encontrar el módulo './ruta-relativa'
Si recibes un error indicando que el módulo no se puede encontrar, esto podría deberse a varias razones:
- La ruta está mal escrita. Asegúrate de que la ruta sea correcta.
- Es posible que dependas de
baseUrl
en tutsconfig.json
. Vite no consideratsconfig.json
por defecto, por lo que podrías necesitar instalarvite-tsconfig-paths
si requieres este comportamiento.
- Es posible que dependas de
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
O modifica la ruta para que no sea relativa al directorio raíz:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- Asegúrate de no tener alias relativos. Vite los trata como relativos al archivo de importación en lugar de la raíz del proyecto.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Fallo al finalizar el worker
Este error aparece al utilizar fetch
de NodeJS con la opción predeterminada pool: 'threads'
. Este problema está siendo investigado en el issue Timeout abort can leave process(es) running in the background #3077.
Como alternativa, puedes cambiar a pool: 'forks'
o pool: 'vmForks'
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks
Fallos de segmentación y errores de código nativo
La ejecución de módulos nativos de NodeJS en pool: 'threads'
puede provocar errores crípticos originados en el código nativo.
Segmentation fault (core dumped)
thread '<unnamed>' panicked at 'assertion failed
Abort trap: 6
internal error: entered unreachable code
En estos casos, es probable que el módulo nativo no sea seguro para entornos multihilo. Como alternativa, puedes cambiar a pool: 'forks'
, que ejecuta los casos de prueba en múltiples node:child_process
en lugar de node:worker_threads
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks