Skip to content
Vitest 2
Main Navigation GuidaAPIConfigurazioneModalità BrowserAvanzato
2.1.9
1.6.1
0.34.6

Italiano

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

Italiano

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

Aspetto

Sidebar Navigation

Perché Vitest

Introduzione

Funzionalità

Workspace

Interfaccia a riga di comando

Filtro dei test

Reporter

Coverage

Snapshot

Mocking

Test dei Tipi

Interfaccia Utente di Vitest

Test nel codice sorgente

Contesto del Test

Ambienti di Test

Estensione dei Matchers

Integrazione con gli IDE

Debugging

Confronti con altri Test Runner

Guida alla Migrazione

Errori Frequenti

Profiling Test Performance

Ottimizzare le Prestazioni

In questa pagina

Errori Comuni ​

Impossibile trovare il modulo './relative-path' ​

Se ricevi un errore che indica che il modulo non può essere trovato, le cause potrebbero essere diverse:

    1. Hai scritto male il percorso. Assicurati che il percorso sia corretto.
    1. Stai utilizzando baseUrl nel tuo tsconfig.json. Vite non considera tsconfig.json di default, quindi potresti dover installare vite-tsconfig-paths se dipendi da questo comportamento.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

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

In alternativa, riscrivi il percorso in modo che non sia relativo alla root:

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. Assicurati di non avere alias relativi. Vite li tratta come relativi al file in cui si trova l'importazione, piuttosto che alla root.
ts
import { defineConfig } from 'vitest/config';

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

Impossibile mockare "./mocked-file.js" perché è già stato caricato ​

Questo errore si verifica quando il metodo vi.mock viene chiamato su un modulo che è già stato caricato. Vitest genera questo errore poiché tale chiamata non ha alcun effetto, dato che i moduli memorizzati nella cache sono preferiti.

Ricorda che vi.mock viene sempre hoisted (sollevato), il che significa che il modulo è stato caricato prima che il file di test iniziasse l'esecuzione, molto probabilmente in un file di setup. Per correggere l'errore, rimuovi l'importazione o svuota la cache alla fine di un file di setup. Tieni presente che in tal caso il file di setup e il file di test faranno riferimento a moduli diversi.

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

sideEffect();

vi.resetModules();

Impossibile terminare il worker ​

Questo errore può verificarsi quando si utilizza fetch di NodeJS con l'impostazione predefinita pool: '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'.

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

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

Segfault e errori di codice nativo ​

L'esecuzione di moduli nativi di NodeJS con pool: 'threads' può causare errori criptici provenienti 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 (sicuro per il multi-threading). Come soluzione temporanea, puoi passare a pool: 'forks', che esegue i casi di test in più processi node:child_process anziché in più node:worker_threads.

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

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks
Pager
Pagina precedenteGuida alla Migrazione
Pagina successivaProfiling Test Performance

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors

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

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors