Skip to content
Vitest 2
Main Navigation PrzewodnikAPIKonfiguracjaTryb przeglądarkiZaawansowany
2.1.9
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

Node API

Test Runner

Metadane Zadań

Rozszerzanie reporterów

Niestandardowa Pula

Na tej stronie

Node API ​

WARNING

Vitest udostępnia eksperymentalne, prywatne API. Zmiany mogą nie być zgodne z SemVer, co może prowadzić do braku kompatybilności wstecznej, dlatego zaleca się przypięcie wersji Vitest podczas korzystania z tego API.

startVitest ​

Możesz uruchomić testy Vitest za pomocą jego Node API:

js
import { startVitest } from 'vitest/node';

const vitest = await startVitest('test');

await vitest?.close();

Funkcja startVitest zwraca instancję Vitest, jeśli testy mogą zostać uruchomione. Zwraca undefined, jeśli wystąpi jeden z następujących przypadków:

  • Vitest nie znalazł pakietu vite (zwykle instalowanego razem z Vitest).
  • Włączone jest pokrycie kodu i tryb uruchomienia 'test', ale pakiet do pokrycia nie jest zainstalowany (@vitest/coverage-v8 lub @vitest/coverage-istanbul).
  • Pakiet środowiska testowego nie jest zainstalowany (jsdom/happy-dom/@edge-runtime/vm).

W przypadku, gdy zostanie zwrócone undefined lub testy zakończą się niepowodzeniem podczas uruchamiania, Vitest ustawia process.exitCode na 1.

Jeśli tryb obserwacji nie jest włączony, Vitest wywoła metodę close.

Jeśli tryb obserwacji jest włączony, a terminal obsługuje TTY, Vitest zarejestruje skróty konsolowe.

Możesz przekazać listę filtrów jako drugi argument. Vitest uruchomi tylko te testy, których ścieżka do pliku zawiera przynajmniej jeden z przekazanych ciągów znaków.

Dodatkowo, możesz użyć trzeciego argumentu, aby przekazać argumenty CLI, które nadpiszą wszystkie opcje konfiguracji testów.

Alternatywnie, możesz przekazać pełną konfigurację Vite jako czwarty argument, która będzie miała priorytet przed wszystkimi innymi opcjami zdefiniowanymi przez użytkownika.

Po uruchomieniu testów możesz uzyskać wyniki z API state.getFiles:

ts
const vitest = await startVitest('test');

console.log(vitest.state.getFiles()); // [{ type: 'file', ... }]

Od wersji Vitest 2.1 zaleca się stosowanie API "Zgłoszonych Zadań" (Reported Tasks) razem z state.getFiles. W przyszłości Vitest będzie zwracać te obiekty bezpośrednio:

ts
const vitest = await startVitest('test');

const [fileTask] = vitest.state.getFiles();
const testFile = vitest.state.getReportedEntity(fileTask);

createVitest ​

Możesz samodzielnie utworzyć instancję Vitest za pomocą funkcji createVitest. Zwraca ona tę samą instancję Vitest co startVitest, ale nie uruchamia testów i nie sprawdza poprawności zainstalowanych pakietów.

js
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});

parseCLI ​

Możesz użyć tej metody do parsowania argumentów CLI (Command Line Interface, Interfejs Linii Poleceń). Akceptuje ciąg znaków (w którym argumenty są oddzielone pojedynczą spacją) lub tablicę ciągów znaków argumentów CLI w formacie używanym przez Vitest CLI. Zwraca filtr oraz options, które możesz później przekazać do metod createVitest lub startVitest.

ts
import { parseCLI } from 'vitest/node';

parseCLI('vitest ./files.ts --coverage --browser=chrome');

Vitest ​

Instancja Vitest wymaga określenia aktualnego trybu testów. Może to być:

  • test podczas uruchamiania testów środowiska uruchomieniowego (runtime tests)
  • benchmark podczas uruchamiania testów wydajnościowych (benchmarks)

mode ​

test ​

W trybie testowym wywoływane są tylko funkcje wewnątrz bloków test lub it. Wywołanie bench spowoduje zgłoszenie błędu. Ten tryb używa opcji include i exclude w konfiguracji do wyszukiwania plików testowych.

benchmark ​

W trybie benchmark wywoływane są funkcje bench. Wywołanie test lub it spowoduje zgłoszenie błędu. Ten tryb używa opcji benchmark.include i benchmark.exclude w konfiguracji do wyszukiwania plików benchmarkowych.

start ​

Możesz rozpocząć uruchomienie testów lub benchmarków za pomocą metody start. Możesz przekazać tablicę ciągów znaków, aby filtrować pliki testowe.

provide ​

Vitest udostępnia metodę provide, która jest skrótem do vitest.getCoreWorkspaceProject().provide. Za pomocą tej metody możesz przekazywać wartości z głównego wątku do testów. Wszystkie wartości są sprawdzane za pomocą structuredClone przed ich zapisaniem, ale same wartości nie są klonowane.

Aby otrzymać wartości w teście, musisz zaimportować metodę inject z punktu wejścia vitest:

ts
import { inject } from 'vitest';
const port = inject('wsPort'); // 3000

W celu zwiększenia bezpieczeństwa typów zalecamy rozszerzenie typu ProvidedContext:

ts
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});
vitest.provide('wsPort', 3000);

declare module 'vitest' {
  export interface ProvidedContext {
    wsPort: number;
  }
}

WARNING

Z technicznego punktu widzenia, provide jest metodą WorkspaceProject i jest ograniczona do konkretnego projektu. Niemniej jednak, wszystkie projekty dziedziczą wartości z projektu głównego, dzięki czemu vitest.provide stanowi uniwersalny sposób przekazywania wartości do testów.

TIP

Ta metoda jest również dostępna dla globalnych plików konfiguracji w przypadkach, gdy nie chcesz używać publicznego API:

js
export default function setup({ provide }) {
  provide('wsPort', 3000);
}
Pager
Następna stronaTest Runner

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors

https://v2.vitest.dev/advanced/api

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors