Skip to content
Vitest 2
Main Navigation GuideAPIConfigurationMode NavigateurAvancé
2.1.9
1.6.1
0.34.6

Français

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

Français

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

Apparence

Sidebar Navigation

Pourquoi Vitest

Premiers pas

Fonctionnalités

Espace de travail

Interface de ligne de commande

Filtrage des tests

Reporters

Couverture

Instantané (Snapshot)

Simulations

Tests de Type

Interface utilisateur de Vitest

Tests intégrés au code source

Contexte de Test

Environnement de test

Extension des vérificateurs (Matchers)

Intégrations pour IDE

Débogage

Comparaison avec d'autres outils de test

Guide de migration

Erreurs courantes

Profiling Test Performance

Améliorer les performances

Sur cette page

Erreurs courantes ​

Module './relative-path' introuvable ​

Si vous rencontrez une erreur indiquant que le module est introuvable, plusieurs causes sont possibles :

    1. Le chemin spécifié est incorrect. Vérifiez l'exactitude du chemin.
    1. Vous vous appuyez peut-être sur baseUrl défini dans votre tsconfig.json. Par défaut, Vite n'interprète pas tsconfig.json. Si vous utilisez ce comportement, l'installation de vite-tsconfig-paths pourrait être nécessaire.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

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

Alternativement, vous pouvez réécrire votre chemin pour qu'il ne soit plus relatif à la racine :

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. Assurez-vous de ne pas utiliser d'alias basés sur des chemins relatifs. Vite les interprète comme étant relatifs au fichier où l'importation est effectuée, et non à la racine du projet.
ts
import { defineConfig } from 'vitest/config';

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

Impossible de mocker "./mocked-file.js" : déjà chargé ​

Cette erreur survient lorsque la méthode vi.mock est appelée sur un module qui a déjà été chargé. Vitest génère cette erreur car un tel appel serait sans effet, les modules mis en cache ayant la priorité.

Il est important de noter que vi.mock est toujours remonté (hoisted) – ce qui signifie que le module a été chargé avant même que le fichier de test ne commence à s'exécuter, très probablement dans un fichier de configuration (setup file). Pour corriger cette erreur, supprimez l'importation ou videz le cache à la fin d'un fichier de configuration. Dans ce dernier cas, le fichier de configuration et votre fichier de test feront référence à des modules différents.

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

sideEffect();

vi.resetModules();

Échec de la terminaison du worker ​

Cette erreur peut se produire lorsque la méthode fetch de NodeJS est utilisée avec le pool: 'threads' par défaut. Ce problème est documenté dans l'issue Timeout abort can leave process(es) running in the background #3077.

En guise de solution de contournement, vous pouvez opter pour pool: 'forks' ou pool: 'vmForks'.

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

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks

Erreurs de segmentation et de code natif ​

L'exécution de modules NodeJS natifs dans un pool: 'threads' peut entraîner des erreurs obscures provenant du code natif, telles que :

  • 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 conçu pour être thread-safe. En guise de solution de contournement, vous pouvez passer à pool: 'forks', qui exécute les cas de test dans plusieurs node:child_process au lieu de plusieurs node:worker_threads.

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

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks
Pager
Page précédenteGuide de migration
Page suivanteProfiling Test Performance

Publié sous la licence MIT.

Copyright (c) 2024 Mithril Contributors

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

Publié sous la licence MIT.

Copyright (c) 2024 Mithril Contributors