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:
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.
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.
// .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, --update | Zaktualizuj migawkę |
-w, --watch | Włą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 |
--ui | Włącz interfejs użytkownika |
--open | Otwó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.strictPort | Ustaw na true, aby zakończyć działanie, jeśli port jest już używany, zamiast automatycznie próbować następnego dostępnego portu |
--silent | Wyłącz wyjście konsoli z testów |
--hideSkippedTests | Ukryj 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.all | Czy 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.enabled | Włą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.clean | Czyści wyniki pokrycia przed uruchomieniem testów (domyślne: true) |
--coverage.cleanOnRerun | Czyś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.reportOnFailure | Generuj raport pokrycia kodu, nawet jeśli testy nie powiodą się (domyślne: false ) |
--coverage.allowExternal | Zbierz pokrycie kodu dla plików poza katalogiem głównym projektu (domyślne: false ) |
--coverage.skipFull | Nie pokazuj plików ze 100% pokryciem instrukcji, gałęzi i funkcji (domyślne: false ) |
--coverage.thresholds.100 | Skrót do ustawienia wszystkich progów pokrycia kodu na 100 (domyślne: false ) |
--coverage.thresholds.perFile | Sprawdź 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.autoUpdate | Zaktualizuj 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 |
--isolate | Uruchom każdy plik testowy w izolacji. Aby wyłączyć izolację, użyj opcji --no-isolate (domyślne: true ) |
--globals | Wstrzyknij API globalnie |
--dom | Emuluj API przeglądarki za pomocą happy-dom |
--browser.enabled | Uruchamia 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.headless | Uruchom 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.strictPort | Ustaw 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.slowHijackESM | Pozwó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.isolate | Uruchom każdy plik testowy przeglądarki w izolacji. Aby wyłączyć izolację, użyj --browser.isolate=false (domyślny: true ) |
--browser.fileParallelism | Czy 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.isolate | Izoluj testy w puli wątków (domyślny: true ) |
--poolOptions.threads.singleThread | Uruchom 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.useAtomics | Uż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.isolate | Izoluj testy w puli wątków (domyślny: true ) |
--poolOptions.vmThreads.singleThread | Uruchom 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.useAtomics | Uż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.isolate | Izoluj testy w puli widelców (domyślny: true ) |
--poolOptions.forks.singleFork | Uruchom 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.isolate | Izoluj testy w puli widelców (domyślny: true ) |
--poolOptions.vmForks.singleFork | Uruchom 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ść. |
--fileParallelism | Czy 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 ) |
--passWithNoTests | Zalicz, gdy nie znaleziono żadnych testów |
--logHeapUsage | Pokaż rozmiar sterty dla każdego testu podczas uruchamiania w node |
--allowOnly | Zezwól na testy i zestawy, które są oznaczone jako tylko (domyślne: !process.env.CI ) |
--dangerouslyIgnoreUnhandledErrors | Ignoruj 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.files | Uruchamiaj 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.tests | Uruchamiaj testy w losowej kolejności (domyślny: false ) |
--sequence.concurrent | Uruchom 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 |
--expandSnapshotDiff | Pokaż pełną różnicę, gdy migawka nie powiedzie się |
--disableConsoleIntercept | Wyłącz automatyczne przechwytywanie logowania konsoli (domyślne: false ) |
--typecheck.enabled | Włącz sprawdzanie typów wraz z testami (domyślne: false ) |
--typecheck.only | Uruchom 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.allowJs | Zezwól na sprawdzanie typów plików JavaScript. Domyślnie przyjmuje wartość z tsconfig.json |
--typecheck.ignoreSourceErrors | Ignoruj 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 ) |
--run | Wyłącz tryb obserwacji |
--segfaultRetry <razy> | Ponów próbę zestawu testowego, jeśli ulegnie awarii z powodu błędu segmentacji (domyślny: true ) |
--no-color | Usuwa kolory z wyjścia konsoli |
--clearScreen | Wyczyść ekran terminala podczas ponownego uruchamiania testów w trybie obserwacji (domyślne: true ) |
--standalone | Uruchom 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ścieforceRerunTriggers
. Domyślnie zmiany w pliku konfiguracyjnym Vitest i wpackage.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 indeksieindex
. Na przykład, aby podzielić zestaw testów na trzy części, użyj tego:shvitest 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).