Skip to content
Vitest 2
Main Navigation GuíaAPIConfiguraciónModo NavegadorAvanzado
2.1.9
1.6.1
0.34.6

Español

English
简体中文
繁體中文
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Español

English
简体中文
繁體中文
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Apariencia

Sidebar Navigation

Por qué Vitest

Empezando

Características

Área de Trabajo

Interfaz de Línea de Comandos

Filtrado de Pruebas

Informes

Cobertura

Capturas instantáneas

Mocking

Pruebas de Tipos

Interfaz de Usuario de Vitest

Pruebas en el código fuente

Contexto de prueba

Entorno de Pruebas

Extender Matchers

Integración con IDEs

Depuración

Comparaciones con otros Ejecutores de Pruebas

Guía de Migración

Errores frecuentes

Profiling Test Performance

Mejora del rendimiento

En esta página

Errores Comunes ​

No se puede encontrar el módulo './ruta-relativa' ​

Si recibes un error indicando que no se puede encontrar el módulo, esto puede deberse a varias razones:

    1. Has escrito mal la ruta. Asegúrate de que la ruta sea correcta.
    1. Es posible que dependas de baseUrl en tu tsconfig.json. Vite no considera tsconfig.json por defecto, por lo que podrías necesitar instalar vite-tsconfig-paths si dependes de este comportamiento.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

export default defineConfig({
  plugins: [tsconfigPaths()],
});

O reescribe la ruta para que no sea relativa a la raíz del proyecto:

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. Asegúrate de no tener alias relativos. Vite los trata como relativos al archivo donde se realiza la importación, en lugar de la raíz del proyecto.
ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    alias: {
      '@/': './src/', 
      '@/': new URL('./src/', import.meta.url).pathname, 
    },
  },
});

No se puede hacer mock de "./mocked-file.js" porque ya está cargado ​

Este error ocurre cuando el método vi.mock se invoca en un módulo que ya ha sido cargado. Vitest lanza este error porque dicha llamada no tendrá efecto, ya que se prefieren los módulos en caché.

Recuerda que vi.mock siempre se eleva (hoisted), lo que significa que el módulo se cargó antes de que el archivo de prueba comenzara a ejecutarse, muy probablemente en un archivo de configuración (setup file). Para corregir el error, elimina la importación o borra la caché al final de un archivo de configuración. Ten en cuenta que, en ese caso, el archivo de configuración y tu archivo de prueba harán referencia a módulos diferentes.

ts
// setupFile.js
import { vi } from 'vitest';
import { sideEffect } from './mocked-file.js';

sideEffect();

vi.resetModules();

Fallo al terminar el worker ​

Este error puede ocurrir cuando se utiliza fetch de NodeJS con el pool: 'threads' predeterminado. Este problema se está rastreando en el issue Timeout abort can leave process(es) running in the background #3077.

Como solución alternativa, puedes cambiar a pool: 'forks' o pool: 'vmForks'.

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
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 generar errores crípticos derivados del 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 esté diseñado para ser seguro en entornos multihilo. Como solución alternativa, puedes cambiar a pool: 'forks', que ejecuta los casos de prueba en múltiples node:child_process en lugar de múltiples node:worker_threads.

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks
Pager
AnteriorGuía de Migración
SiguienteProfiling Test Performance

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors

https://v2.vitest.dev/guide/common-errors

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors