Skip to content
Vitest 3
Main Navigation Przewodnik & APIKonfiguracjaTryb przeglądarkiZaawansowane API
3.2.0
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

API

Node API

Zaawansowane API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API wtyczek

API modułu uruchamiającego

Reportery

Metadane zadań

Przewodnik

Uruchamianie testów

Rozszerzanie Reporterów

Niestandardowa pula

Konfiguracja Vitest

Dokumentacja API testowego

Na tej stronie

TestCase ​

Klasa TestCase reprezentuje pojedynczy test. Jest ona dostępna wyłącznie w głównym wątku. Aby uzyskać informacje na temat pracy z zadaniami środowiskowymi, zapoznaj się z sekcją "Runner API".

Instancja TestCase zawsze posiada właściwość type o wartości test. Możesz jej użyć do rozróżnienia różnych typów zadań:

ts
if (task.type === 'test') {
  task; // TestCase
}

project ​

Odwołuje się do TestProject, do którego należy dany test.

module ​

Jest to bezpośrednie odwołanie do TestModule, w którym test został zdefiniowany.

name ​

Jest to nazwa testu przekazana do funkcji test.

ts
import { test } from 'vitest';

// [!code word:'the validation works correctly']
test('the validation works correctly', () => {
  // ...
});

fullName ​

Jest to pełna nazwa testu, zawierająca wszystkie nadrzędne grupy testów, oddzielone symbolem >. Dla poniższego przykładu, pełna nazwa testu to "the validation logic > the validation works correctly":

ts
import { describe, test } from 'vitest';

// [!code word:'the validation works correctly']
// [!code word:'the validation logic']
describe('the validation logic', () => {
  test('the validation works correctly', () => {
    // ...
  });
});

id ​

Jest to unikalny identyfikator testu. Identyfikator ten jest deterministyczny i pozostanie taki sam dla danego testu w różnych uruchomieniach. Jest on generowany na podstawie nazwy projektu, identyfikatora modułu oraz kolejności testów.

Struktura identyfikatora wygląda następująco:

1223128da3_0_0
^^^^^^^^^^ hash pliku
           ^ indeks pakietu
             ^ indeks testu

TIP

Możesz wygenerować hash pliku za pomocą funkcji generateFileHash z vitest/node, dostępnej od Vitest 3:

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

const hash = generateFileHash(
  '/file/path.js', // ścieżka względna
  undefined // nazwa projektu lub `undefined`, jeśli nie została ustawiona
);

DANGER

Nie próbuj parsować identyfikatora. Może on zaczynać się od znaku minus: -1223128da3_0_0_0.

location ​

Lokalizacja w module, w której test został zdefiniowany. Lokalizacje są zbierane tylko wtedy, gdy opcja includeTaskLocation jest włączona w konfiguracji. Należy zauważyć, że ta opcja jest automatycznie włączana, jeśli używane są flagi --reporter=html, --ui lub --browser.

Lokalizacja tego testu będzie równa { line: 3, column: 1 }:

ts
import { test } from 'vitest'

test('the validation works correctly', () => {
  // ...
})
1
2
3
4
5

parent ​

Nadrzędny pakiet testów. Jeśli test został wywołany bezpośrednio w module, jego rodzicem będzie sam moduł.

options ​

ts
interface TaskOptions {
  readonly each: boolean | undefined;
  readonly fails: boolean | undefined;
  readonly concurrent: boolean | undefined;
  readonly shuffle: boolean | undefined;
  readonly retry: number | undefined;
  readonly repeats: number | undefined;
  readonly mode: 'run' | 'only' | 'skip' | 'todo';
}

Opcje, z którymi test został skonfigurowany.

ok ​

ts
function ok(): boolean;

Sprawdza, czy test nie zakończył się błędem w pakiecie. Jeśli test nie został jeszcze zakończony lub został pominięty, zwróci true.

meta ​

ts
function meta(): TaskMeta;

Niestandardowe metadane, które zostały dołączone do testu podczas jego wykonania. Metadane można dołączyć, przypisując właściwość do obiektu ctx.task.meta podczas wykonywania testu:

ts
import { test } from 'vitest';

test('the validation works correctly', ({ task }) => {
  // ...

  task.meta.decorated = false;
});

Jeśli test nie zakończył jeszcze działania, metadane będą pustym obiektem.

result ​

ts
function result(): TestResult;

Wyniki testu. Jeśli test nie został jeszcze zakończony lub został dopiero zainicjowany, będzie równy TestResultPending:

ts
export interface TestResultPending {
  /**
   * Test został zainicjowany, ale jeszcze nie zakończył działania.
   */
  readonly state: 'pending';
  /**
   * Testy oczekujące nie zawierają błędów.
   */
  readonly errors: undefined;
}

Jeśli test został pominięty, zwracana wartość będzie TestResultSkipped:

ts
interface TestResultSkipped {
  /**
   * Test został pominięty z flagą `skip` lub `todo`.
   * Możesz sprawdzić, która z nich została użyta w opcji `options.mode`.
   */
  readonly state: 'skipped';
  /**
   * Pominięte testy nie zawierają błędów.
   */
  readonly errors: undefined;
  /**
   * Niestandardowa notatka przekazana do `ctx.skip(note)`.
   */
  readonly note: string | undefined;
}

TIP

Jeśli test został pominięty, ponieważ inny test ma flagę only, options.mode będzie równe skip.

Jeśli test nie powiódł się, zwracana wartość będzie TestResultFailed:

ts
interface TestResultFailed {
  /**
   * Test zakończył się niepowodzeniem.
   */
  readonly state: 'failed';
  /**
   * Błędy, które wystąpiły podczas wykonywania testu.
   */
  readonly errors: ReadonlyArray<TestError>;
}

Jeśli test przeszedł pomyślnie, zwracana wartość będzie TestResultPassed:

ts
interface TestResultPassed {
  /**
   * Test przeszedł pomyślnie.
   */
  readonly state: 'passed';
  /**
   * Błędy, które wystąpiły podczas wykonywania testu.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

Należy zauważyć, że test ze stanem passed nadal może zawierać błędy – może się to zdarzyć, jeśli retry zostało wywołane co najmniej raz.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

Przydatne informacje o teście, takie jak czas trwania, zużycie pamięci itp.:

ts
interface TestDiagnostic {
  /**
   * Wskazuje, czy czas trwania testu przekracza wartość `slowTestThreshold`.
   */
  readonly slow: boolean;
  /**
   * Ilość pamięci zużytej przez test w bajtach.
   * Ta wartość jest dostępna tylko, jeśli test został wykonany z flagą `logHeapUsage`.
   */
  readonly heap: number | undefined;
  /**
   * Czas wykonania testu w milisekundach.
   */
  readonly duration: number;
  /**
   * Czas w milisekundach, kiedy test się rozpoczął.
   */
  readonly startTime: number;
  /**
   * Liczba ponowień testu.
   */
  readonly retryCount: number;
  /**
   * Liczba powtórzeń testu zgodnie z konfiguracją opcji `repeats`.
   * Ta wartość może być niższa, jeśli test nie powiódł się podczas powtórzenia i nie skonfigurowano `retry`.
   */
  readonly repeatCount: number;
  /**
   * Jeśli test przeszedł pomyślnie przy drugiej próbie.
   */
  readonly flaky: boolean;
}

INFO

diagnostic() zwróci undefined, jeśli test nie został jeszcze zaplanowany do uruchomienia.

Pager
Poprzednia stronaTestSpecification
Następna stronaTestSuite

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/test-case

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team