Skip to content
Vitest 2
Main Navigation PrůvodceAPIKonfiguraceRežim prohlížečePokročilý
2.1.9
1.6.1
0.34.6

čeština

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

čeština

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

Vzhled

Sidebar Navigation

Proč Vitest

Začínáme

Funkce

Workspace

Rozhraní příkazového řádku

Filtrování testů

Reportéři

Pokrytí

Snímky

Mockování

Testování typů

Vitest UI

Testování ve zdrojovém kódu

Kontext testu

Testovací prostředí

Rozšíření matcherů/porovnávačů

Integrace do IDE

Ladění

Srovnání s jinými testovacími nástroji

Průvodce migrací

Běžné chyby

Profiling Test Performance

Zvýšení výkonu

Na této stránce

Běžné chyby ​

Nelze najít modul './relative-path' ​

Pokud se zobrazí chyba, že modul nelze najít, může to mít několik příčin:

    1. Překlep v cestě. Ujistěte se, že je cesta správně zapsána.
    1. Spoléháte se na baseUrl ve vašem souboru tsconfig.json. Vite ve výchozím nastavení nebere tsconfig.json v úvahu. Pokud toto chování potřebujete, budete muset nainstalovat vite-tsconfig-paths.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

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

Alternativně přepište cestu tak, aby nebyla relativní ke kořenovému adresáři:

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. Máte definované relativní aliasy. Vite je považuje za relativní k souboru, kde je import, nikoli ke kořenovému adresáři projektu.
ts
import { defineConfig } from 'vitest/config';

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

Nelze mockovat "./mocked-file.js", protože je již načten ​

Tato chyba nastane, když je metoda vi.mock volána na modulu, který byl již načten. Vitest tuto chybu vyhodí, protože takové volání nemá žádný účinek, jelikož jsou preferovány cachované moduly.

Pamatujte, že vi.mock je vždy přesunut nahoru (hoisted) – to znamená, že modul byl načten před spuštěním testovacího souboru – s největší pravděpodobností v souboru pro nastavení (setup file). Chcete-li chybu opravit, odstraňte import nebo vymažte cache na konci souboru pro nastavení. Mějte na paměti, že v takovém případě budou soubor pro nastavení a testovací soubor odkazovat na různé instance modulů.

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

sideEffect();

vi.resetModules();

Nepodařilo se ukončit worker ​

Tato chyba se může objevit, když je použito fetch z NodeJS s výchozím nastavením pool: 'threads'. Tento problém je sledován v rámci issue Timeout abort can leave process(es) running in the background #3077.

Jako dočasné řešení můžete přepnout na pool: 'forks' nebo pool: 'vmForks'.

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

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

Segfaulty a chyby nativního kódu ​

Spouštění nativních modulů NodeJS v pool: 'threads' může vést k záhadným chybám pocházejícím z nativního kódu.

  • Segmentation fault (core dumped)
  • thread '<unnamed>' panicked at 'assertion failed
  • Abort trap: 6
  • internal error: entered unreachable code

V těchto případech nativní modul pravděpodobně není sestaven jako vícevláknově bezpečný. Jako dočasné řešení můžete přepnout na pool: 'forks', který spouští testovací případy v několika node:child_process namísto několika node:worker_threads.

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

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks
Pager
Předchozí stránkaPrůvodce migrací
Další stránkaProfiling Test Performance

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors

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

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors