Skip to content
Vitest 1
Main Navigation PrzewodnikAPIKonfiguracjaZaawansowany
1.6.1
0.34.6

Polski

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

Polski

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

Wygląd

Sidebar Navigation

Przewodnik

Dlaczego Vitest

Wprowadzenie

Funkcje

Przestrzeń robocza

Interfejs Linii Poleceń

Filtrowanie Testów

Reportery

Pokrycie kodu

Snapshot

Mockowanie

Testowanie typów

Interfejs użytkownika Vitest

Tryb przeglądarki

Testowanie w kodzie źródłowym

Kontekst Testowy

Środowisko Testowe

Rozszerzanie Matcherów

Integracje z IDE

Debugowanie

Porównania z innymi narzędziami do uruchamiania testów

Przewodnik migracji

Częste błędy

Poprawa wydajności

API

Dokumentacja API Testów

Funkcje Mockujące

Vi

expect

expectTypeOf

assert

assertType

Konfiguracja

Zarządzanie plikiem konfiguracyjnym Vitest

Konfiguracja Vitest

Na tej stronie

Częste błędy ​

Nie można znaleźć modułu './relative-path' ​

Jeśli pojawia się błąd informujący o niemożności znalezienia modułu, przyczyny mogą być różne:

    1. Błąd w ścieżce: Sprawdź, czy ścieżka do modułu jest poprawna i nie zawiera literówek.
    1. Użycie baseUrl w tsconfig.json: Domyślnie Vite nie uwzględnia konfiguracji z pliku tsconfig.json. Jeśli korzystasz z opcji baseUrl, konieczna może być instalacja wtyczki vite-tsconfig-paths.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

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

Alternatywnie, możesz zmodyfikować ścieżkę importu, aby nie była relatywna do katalogu głównego projektu:

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. Względne aliasy: Upewnij się, że nie używasz względnych aliasów w konfiguracji projektu. Vite interpretuje je jako ścieżki relatywne do pliku, w którym następuje import, a nie do katalogu głównego projektu.
ts
import { defineConfig } from 'vitest/config';

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

Nie można zamockować "./mocked-file.js", ponieważ został już załadowany ​

Ten błąd występuje, gdy metoda vi.mock jest wywoływana na module, który został już załadowany. Vitest zgłasza ten błąd, ponieważ to wywołanie nie ma żadnego efektu, ponieważ preferowane są moduły z pamięci podręcznej.

Pamiętaj, że vi.mock jest zawsze podnoszone (hoisted) - oznacza to, że moduł został załadowany przed rozpoczęciem wykonywania pliku testowego - najprawdopodobniej w pliku konfiguracyjnym (setup file). Aby naprawić ten błąd, usuń import lub wyczyść pamięć podręczną na końcu pliku konfiguracyjnego - uważaj, że plik konfiguracyjny i plik testowy będą w takim przypadku odwoływać się do różnych modułów.

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

sideEffect();

vi.resetModules();

Nie udało się zakończyć pracy workera ​

Ten błąd może wystąpić, gdy fetch z NodeJS jest używany z domyślnym ustawieniem pool: 'threads'. Ten problem jest śledzony w zgłoszeniu Timeout abort can leave process(es) running in the background #3077.

Jako obejście możesz przełączyć się na pool: 'forks' lub pool: 'vmForks'.

Określ pool w swoim pliku konfiguracyjnym:

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

export default defineConfig({
  test: {
    pool: 'forks',
  },
});

Lub w skryptach package.json:

diff
scripts: {
-  "test": "vitest"
+  "test": "vitest --pool=forks"
}
Pager
Poprzednia stronaPrzewodnik migracji
Następna stronaPoprawa wydajności

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors

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

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors