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

Interfejs Linii Poleceń ​

Komendy ​

vitest ​

Uruchamia Vitest w bieżącym katalogu. Automatycznie przechodzi w tryb obserwacji w środowisku deweloperskim i tryb uruchamiania w CI (Continuous Integration).

Możesz przekazać dodatkowy argument jako filtr testów do uruchomienia. Na przykład:

bash
vitest foobar

Uruchomi tylko pliki testowe, których ścieżki zawierają foobar. Ten filtr sprawdza tylko zawartość ścieżki i nie obsługuje wyrażeń regularnych ani wzorców glob (chyba że twój terminal przetworzy go przed przekazaniem do Vitest).

vitest run ​

Wykonuje pojedyncze uruchomienie testów bez trybu obserwacji.

vitest watch ​

Uruchamia wszystkie zestawy testów i obserwuje zmiany w plikach. Po wykryciu zmiany ponownie uruchamia testy. Działa tak samo jak wywołanie vitest bez argumentu. W środowisku CI zachowuje się jak vitest run.

vitest dev ​

Alias dla vitest watch.

vitest related ​

Uruchamia tylko testy, które obejmują listę plików źródłowych jako zależności. Działa z importami statycznymi (np. import('./index.js') lub import index from './index.js'), ale nie z dynamicznymi (np. import(filepath)). Wszystkie ścieżki plików powinny być określone względem folderu głównego projektu.

Przydatne do uruchamiania z lint-staged lub w konfiguracji CI.

bash
vitest related /src/index.ts /src/hello-world.js

TIP

Pamiętaj, że Vitest domyślnie uruchamia się z włączonym trybem obserwacji. Jeśli używasz narzędzi takich jak lint-staged, powinieneś również przekazać opcję --run, aby polecenie mogło zakończyć się pomyślnie.

js
// .lintstagedrc.js
export default {
  '*.{js,ts}': 'vitest related --run',
};

vitest bench ​

Uruchamia tylko testy porównawcze (benchmark), które mierzą i porównują wydajność.

Opcje ​

Opcje
-r, --root <ścieżka>Ścieżka główna
-c, --config <ścieżka>Ścieżka do pliku konfiguracyjnego
-u, --updateZaktualizuj migawkę
-w, --watchWłącz tryb obserwacji
-t, --testNamePattern <wzorzec>Uruchom testy, których pełne nazwy pasują do określonego wzorca wyrażenia regularnego
--dir <ścieżka>Bazowy katalog do skanowania w poszukiwaniu plików testowych
--uiWłącz interfejs użytkownika
--openOtwórz interfejs użytkownika automatycznie (domyślnie: !process.env.CI)
--api.port [port]Określ port serwera. Uwaga: jeśli port jest już używany, Vite automatycznie spróbuje następnego dostępnego portu, więc może to nie być faktyczny port, na którym serwer ostatecznie nasłuchuje. Jeśli wartość zostanie ustawiona na true, zostanie ustawiona na wartość 51204
--api.host [host]Określ adresy IP, na których serwer powinien nasłuchiwać. Ustaw wartość na 0.0.0.0 lub true, aby nasłuchiwać na wszystkich adresach, włączając adresy sieci LAN i publiczne
--api.strictPortUstaw na true, aby zakończyć działanie, jeśli port jest już używany, zamiast automatycznie próbować następnego dostępnego portu
--silentWyłącz wyjście konsoli z testów
--hideSkippedTestsUkryj logi dla pominiętych testów
--reporter <nazwa>Określ reportery
--outputFile <nazwa_pliku/-i>Zapisz wyniki testów do pliku, gdy określony jest również reporter obsługujący, użyj notacji kropkowej cac dla indywidualnych wyjść wielu reporterów (przykład: --outputFile.tap=./tap.txt)
--coverage.allCzy uwzględniać wszystkie pliki, w tym te nieprzetestowane, w raporcie
--coverage.provider <nazwa>Wybierz narzędzie do zbierania pokrycia kodu, dostępne wartości to: "v8", "istanbul" i "custom"
--coverage.enabledWłącza zbieranie danych o pokryciu kodu. Może być nadpisane za pomocą opcji CLI --coverage (domyślne: false)
--coverage.include <wzorzec>Pliki uwzględnione w pokryciu kodu jako wzorce glob. Może być określone więcej niż raz przy użyciu wielu wzorców (domyślne: **)
--coverage.exclude <wzorzec>Pliki do wykluczenia z pokrycia kodu. Mogą być określone więcej niż raz przy użyciu wielu rozszerzeń (domyślne: Zapoznaj się z coverage.exclude)
--coverage.extension <rozszerzenie>Rozszerzenie do uwzględnienia w pokryciu kodu. Może być określone więcej niż raz przy użyciu wielu rozszerzeń (domyślne: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"])
--coverage.cleanCzyści wyniki pokrycia przed uruchomieniem testów (domyślne: true)
--coverage.cleanOnRerunCzyści raport pokrycia kodu przy ponownym uruchomieniu obserwacji (domyślne: true)
--coverage.reportsDirectory <ścieżka>Katalog, do którego ma zostać zapisany raport pokrycia kodu (domyślnie: ./coverage)
--coverage.reporter <nazwa>Reporterzy pokrycia kodu do użycia. Zapoznaj się z coverage.reporter po więcej informacji (domyślne: ["text", "html", "clover", "json"])
--coverage.reportOnFailureGeneruj raport pokrycia kodu, nawet jeśli testy nie powiodą się (domyślne: false)
--coverage.allowExternalZbierz pokrycie kodu dla plików poza katalogiem głównym projektu (domyślne: false)
--coverage.skipFullNie pokazuj plików ze 100% pokryciem instrukcji, gałęzi i funkcji (domyślne: false)
--coverage.thresholds.100Skrót do ustawienia wszystkich progów pokrycia kodu na 100 (domyślne: false)
--coverage.thresholds.perFileSprawdź progi dla każdego pliku. Zobacz --coverage.thresholds.lines, --coverage.thresholds.functions, --coverage.thresholds.branches i --coverage.thresholds.statements dla faktycznych progów (domyślne: false)
--coverage.thresholds.autoUpdateZaktualizuj wartości progowe: "lines", "functions", "branches" i "statements" do pliku konfiguracyjnego, gdy bieżące pokrycie jest powyżej skonfigurowanych progów (domyślne: false)
--coverage.thresholds.lines <liczba>Próg dla linii. Odwiedź istanbuljs, aby uzyskać więcej informacji. Ta opcja nie jest dostępna dla dostawców niestandardowych
--coverage.thresholds.functions <liczba>Próg dla funkcji. Odwiedź istanbuljs, aby uzyskać więcej informacji. Ta opcja nie jest dostępna dla dostawców niestandardowych
--coverage.thresholds.branches <liczba>Próg dla gałęzi. Odwiedź istanbuljs, aby uzyskać więcej informacji. Ta opcja nie jest dostępna dla dostawców niestandardowych
--coverage.thresholds.statements <liczba>Próg dla instrukcji. Odwiedź istanbuljs, aby uzyskać więcej informacji. Ta opcja nie jest dostępna dla dostawców niestandardowych
--coverage.ignoreClassMethods <nazwa>Tablica nazw metod klas do ignorowania dla pokrycia kodu. Odwiedź istanbuljs, aby uzyskać więcej informacji. Ta opcja jest dostępna tylko dla istanbul providers (domyślne: [])
--coverage.processingConcurrency <liczba>Limit współbieżności używany podczas przetwarzania wyników pokrycia kodu. (domyślne min. pomiędzy 20 a liczbą rdzeni procesora)
--coverage.customProviderModule <ścieżka>Określa nazwę modułu lub ścieżkę dla niestandardowego modułu dostawcy pokrycia kodu. Odwiedź Niestandardowy Dostawca Pokrycia Kodu, aby uzyskać więcej informacji. Ta opcja jest dostępna tylko dla niestandardowych dostawców
--coverage.watermarks.statements <znaki_wodne>Wysokie i niskie znaki wodne dla instrukcji w formacie <wysoki>,<niski>
--coverage.watermarks.lines <znaki_wodne>Wysokie i niskie znaki wodne dla linii w formacie <wysoki>,<niski>
--coverage.watermarks.branches <znaki_wodne>Wysokie i niskie znaki wodne dla rozgałęzień w formacie <wysoki>,<niski>
--coverage.watermarks.functions <znaki_wodne>Wysokie i niskie znaki wodne dla funkcji w formacie <wysoki>,<niski>
--mode <nazwa>Nadpisz tryb Vite (domyślne: test lub benchmark)
--workspace <ścieżka>Ścieżka do pliku konfiguracyjnego przestrzeni roboczej
--isolateUruchom każdy plik testowy w izolacji. Aby wyłączyć izolację, użyj opcji --no-isolate (domyślne: true)
--globalsWstrzyknij API globalnie
--domEmuluj API przeglądarki za pomocą happy-dom
--browser.enabledUruchamia testy w przeglądarce. Równoważne --browser.enabled (domyślne: false)
--browser.name <name>Uruchom wszystkie testy w konkretnej przeglądarce. Niektóre przeglądarki są dostępne tylko dla określonych dostawców (zobacz --browser.provider). Odwiedź browser.name po więcej informacji
--browser.headlessUruchom przeglądarkę w trybie bezgłowym (tj. bez otwierania GUI (Graficznego Interfejsu Użytkownika)). Jeśli uruchamiasz Vitest w CI, zostanie domyślnie włączony (domyślny: process.env.CI)
--browser.api.port [port]Określ port serwera. Uwaga: jeśli port jest już używany, Vite automatycznie spróbuje następnego dostępnego portu, więc może to nie być faktyczny port, na którym serwer ostatecznie nasłuchuje. Jeśli wartość zostanie ustawiona na true, zostanie ustawiona na wartość 63315
--browser.api.host [host]Określ adresy IP, na których serwer powinien nasłuchiwać. Ustaw wartość na 0.0.0.0 lub true, aby nasłuchiwać na wszystkich adresach, włączając adresy sieci LAN i publiczne
--browser.api.strictPortUstaw na true, aby zakończyć działanie, jeśli port jest już używany, zamiast automatycznie próbować następnego dostępnego portu
--browser.provider <name>Dostawca używany do uruchamiania testów przeglądarki. Niektóre przeglądarki są dostępne tylko dla określonych dostawców. Może to być „webdriverio”, „playwright” lub ścieżka do dostawcy niestandardowego. Odwiedź browser.provider po więcej informacji (domyślny: "webdriverio")
--browser.providerOptions <options>Opcje przekazywane do dostawcy przeglądarki. Odwiedź browser.providerOptions po więcej informacji
--browser.slowHijackESMPozwól Vitestowi używać własnego rozwiązania modułów w przeglądarce, aby włączyć interfejsy API takie jak vi.mock i vi.spyOn. Odwiedź browser.slowHijackESM po więcej informacji (domyślny: false)
--browser.isolateUruchom każdy plik testowy przeglądarki w izolacji. Aby wyłączyć izolację, użyj --browser.isolate=false (domyślny: true)
--browser.fileParallelismCzy wszystkie pliki testowe mają być uruchamiane równolegle. Użyj --browser.file-parallelism=false, aby wyłączyć (domyślne: takie samo jak --file-parallelism)
--pool <pula>Określ pulę, jeśli nie działa w przeglądarce (domyślna: threads)
--poolOptions.threads.isolateIzoluj testy w puli wątków (domyślny: true)
--poolOptions.threads.singleThreadUruchom testy w jednym wątku (domyślny: false)
--poolOptions.threads.maxThreads <workers>Maksymalna liczba wątków do uruchamiania testów
--poolOptions.threads.minThreads <workers>Minimalna liczba wątków do uruchamiania testów
--poolOptions.threads.useAtomicsUżyj Atomics do synchronizacji wątków. Może to poprawić wydajność w niektórych przypadkach, ale może spowodować błąd segmentacji w starszych wersjach Node (domyślny: false)
--poolOptions.vmThreads.isolateIzoluj testy w puli wątków (domyślny: true)
--poolOptions.vmThreads.singleThreadUruchom testy w jednym wątku (domyślny: false)
--poolOptions.vmThreads.maxThreads <workers>Maksymalna liczba wątków do uruchamiania testów
--poolOptions.vmThreads.minThreads <workers>Minimalna liczba wątków do uruchamiania testów
--poolOptions.vmThreads.useAtomicsUżyj Atomics do synchronizacji wątków. Może to poprawić wydajność w niektórych przypadkach, ale może spowodować błąd segmentacji w starszych wersjach Node (domyślny: false)
--poolOptions.vmThreads.memoryLimit <limit>Limit pamięci dla puli wątków VM. Jeśli widzisz wycieki pamięci, spróbuj zmienić tę wartość.
--poolOptions.forks.isolateIzoluj testy w puli widelców (domyślny: true)
--poolOptions.forks.singleForkUruchom testy w jednym child_process (domyślny: false)
--poolOptions.forks.maxForks <workers>Maksymalna liczba procesów do uruchamiania testów
--poolOptions.forks.minForks <workers>Minimalna liczba procesów do uruchamiania testów
--poolOptions.vmForks.isolateIzoluj testy w puli widelców (domyślny: true)
--poolOptions.vmForks.singleForkUruchom testy w jednym child_process (domyślny: false)
--poolOptions.vmForks.maxForks <workers>Maksymalna liczba procesów do uruchamiania testów
--poolOptions.vmForks.minForks <workers>Minimalna liczba procesów do uruchamiania testów
--poolOptions.vmForks.memoryLimit <limit>Limit pamięci dla puli widelców VM. Jeśli widzisz wycieki pamięci, spróbuj zmienić tę wartość.
--fileParallelismCzy wszystkie pliki testowe mają być uruchamiane równolegle. Użyj --no-file-parallelism aby wyłączyć (domyślnie: true)
--maxWorkers <pracownicy>Maksymalna liczba pracowników, aby uruchomić testy
--minWorkers <pracownicy>Minimalna liczba pracowników, aby uruchomić testy
--environment <nazwa>Określ środowisko uruchomienia, jeśli nie działa w przeglądarce (domyślna: node)
--passWithNoTestsZalicz, gdy nie znaleziono żadnych testów
--logHeapUsagePokaż rozmiar sterty dla każdego testu podczas uruchamiania w node
--allowOnlyZezwól na testy i zestawy, które są oznaczone jako tylko (domyślne: !process.env.CI)
--dangerouslyIgnoreUnhandledErrorsIgnoruj wszelkie nieobsłużone błędy, które występują
--shard <fragmenty>Fragment zestawu testowego do wykonania w formacie <indeks>/<liczba>
--changed [od]Uruchom testy, które są dotknięte zmienionymi plikami (domyślne: false)
--sequence.shuffle.filesUruchamiaj pliki w losowej kolejności. Długotrwałe testy nie zostaną uruchomione wcześniej, jeśli włączysz tę opcję. (domyślny: false)
--sequence.shuffle.testsUruchamiaj testy w losowej kolejności (domyślny: false)
--sequence.concurrentUruchom testy równolegle (domyślny: false)
--sequence.seed <seed>Ustaw seed randomizacji. Ta opcja nie zadziała, jeśli --sequence.shuffle to falsy. Odwiedź stronę „Random Seed”, aby uzyskać więcej informacji
--sequence.hooks <order>Zmienia kolejność wykonywania hooków. Akceptowane wartości to: "stack", "list" i "parallel". Odwiedź sequence.hooks po więcej informacji (domyślny: "parallel")
--sequence.setupFiles <order>Zmienia kolejność wykonywania plików setup. Akceptowane wartości to: "list" i "parallel". Jeśli ustawiono na "list", pliki setup zostaną uruchomione w kolejności, w jakiej zostały zdefiniowane. Jeśli ustawiono na "parallel", pliki setup zostaną uruchomione równolegle (domyślny: "parallel")
--inspect [[host:]port]Włącz inspektor Node.js (domyślny: 127.0.0.1:9229)
--inspectBrk [[host:]port]Włącz inspektor Node.js i zatrzymaj przed rozpoczęciem testu
--testTimeout <limit_czasu>Domyślny limit czasu testu w milisekundach (domyślny: 5000)
--hookTimeout <limit_czasu>Domyślny limit czasu hooka w milisekundach (domyślny: 10000)
--bail <liczba>Zatrzymaj wykonywanie testów, gdy dana liczba testów nie powiedzie się (domyślna: 0)
--retry <razy>Ponów próbę testu określoną liczbę razy, jeśli się nie powiedzie (domyślna: 0)
--diff <ścieżka>Ścieżka do konfiguracji różnic, która będzie używana do generowania interfejsu różnic
--exclude <glob>Dodatkowe globy plików, które mają zostać wykluczone z testu
--expandSnapshotDiffPokaż pełną różnicę, gdy migawka nie powiedzie się
--disableConsoleInterceptWyłącz automatyczne przechwytywanie logowania konsoli (domyślne: false)
--typecheck.enabledWłącz sprawdzanie typów wraz z testami (domyślne: false)
--typecheck.onlyUruchom tylko testy sprawdzania typów. Automatycznie włącza sprawdzanie typów (domyślne: false)
--typecheck.checker <nazwa>Określ typechecker do użycia. Dostępne wartości to: "tsc" i "vue-tsc" oraz ścieżka do pliku wykonywalnego (domyślny: "tsc")
--typecheck.allowJsZezwól na sprawdzanie typów plików JavaScript. Domyślnie przyjmuje wartość z tsconfig.json
--typecheck.ignoreSourceErrorsIgnoruj błędy typów z plików źródłowych
--typecheck.tsconfig <ścieżka>Ścieżka do niestandardowego pliku tsconfig
--project <nazwa>Nazwa projektu do uruchomienia, jeśli używasz funkcji przestrzeni roboczej Vitest. Można to powtórzyć dla wielu projektów: --project=1 --project=2. Możesz także filtrować projekty za pomocą symboli wieloznacznych, takich jak --project=packages*
--slowTestThreshold <próg>Próg w milisekundach, aby test został uznany za wolny (domyślny: 300)
--teardownTimeout <limit_czasu>Domyślny limit czasu funkcji teardown w milisekundach (domyślny: 10000)
--maxConcurrency <liczba>Maksymalna liczba równoległych testów w zestawie (domyślna: 5)
--runWyłącz tryb obserwacji
--segfaultRetry <razy>Ponów próbę zestawu testowego, jeśli ulegnie awarii z powodu błędu segmentacji (domyślny: true)
--no-colorUsuwa kolory z wyjścia konsoli
--clearScreenWyczyść ekran terminala podczas ponownego uruchamiania testów w trybie obserwacji (domyślne: true)
--standaloneUruchom Vitest bez uruchamiania testów. Filtry plików zostaną zignorowane, testy będą uruchamiane tylko przy zmianie (domyślne: false)

TIP

Vitest obsługuje zarówno camel case, jak i kebab case dla argumentów CLI. Na przykład, --passWithNoTests i --pass-with-no-tests będą działać (--no-color i --inspect-brk są wyjątkami).

Vitest obsługuje również różne sposoby określania wartości: --reporter dot i --reporter=dot są poprawne.

Jeśli opcja obsługuje tablicę wartości, musisz przekazać opcję wiele razy:

vitest --reporter=dot --reporter=default

Opcje boolean można negować za pomocą przedrostka no-. Określenie wartości jako false również działa:

vitest --no-api
vitest --api=false

changed ​

  • Typ: boolean | string

  • Domyślnie: false

    Uruchamia testy tylko dla zmienionych plików. Jeśli nie podano wartości, uruchamia testy dla zmian, które nie zostały jeszcze zacommitowane (w tym staged i unstaged).

    Aby uruchomić testy dla zmian wprowadzonych w ostatnim commicie, możesz użyć --changed HEAD~1. Możesz również przekazać hash commita (np. --changed 09a9920) lub nazwę gałęzi (np. --changed origin/develop).

    W przypadku użycia z pokryciem kodu raport będzie zawierał tylko pliki związane ze zmianami.

    W połączeniu z opcją konfiguracji forceRerunTriggers cały zestaw testów zostanie uruchomiony, jeśli zmieni się co najmniej jeden z plików wymienionych na liście forceRerunTriggers. Domyślnie zmiany w pliku konfiguracyjnym Vitest i w package.json zawsze spowodują ponowne uruchomienie całego zestawu.

shard ​

  • Typ: string

  • Domyślnie: wyłączone

    Partycjonowanie (sharding) zestawu testów do wykonania w formacie <index>/<count>, gdzie:

    • count to dodatnia liczba całkowita, oznaczająca liczbę partycji.
    • index to dodatnia liczba całkowita, oznaczająca indeks partycji (liczony od 1).

    Polecenie dzieli wszystkie testy na count równych części i uruchamia tylko te, które należą do partycji o indeksie index. Na przykład, aby podzielić zestaw testów na trzy części, użyj tego:

    sh
    vitest run --shard=1/3
    vitest run --shard=2/3
    vitest run --shard=3/3

WARNING

Tej opcji nie można używać z włączonym trybem --watch (domyślnie włączonym w trybie deweloperskim).

Pager
Poprzednia stronaPrzestrzeń robocza
Następna stronaFiltrowanie Testów

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/cli

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors