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

TestSuite ​

Klasa TestSuite reprezentuje pojedynczą grupę testów. Jest ona dostępna wyłącznie w głównym wątku. Aby pracować z zadaniami wykonawczymi, zapoznaj się z sekcją "Runner API".

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

ts
if (task.type === 'suite') {
  task; // TestSuite
}

project ​

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

module ​

To bezpośrednie odwołanie do TestModule, w którym zestaw testów jest zdefiniowany.

name ​

To nazwa zestawu testów przekazana do funkcji describe.

ts
import { describe } from 'vitest';

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

fullName ​

Nazwa zestawu testów obejmująca wszystkie nadrzędne zestawy, oddzielone symbolem >. Poniższy zestaw testów ma pełną nazwę "the validation logic > validating cities":

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

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

id ​

To unikalny identyfikator zestawu testów. Identyfikator ten jest deterministyczny i pozostanie taki sam dla tego samego zestawu testów w wielu uruchomieniach. Jest on oparty na nazwie projektu, identyfikatorze modułu oraz kolejności pakietu testów.

Identyfikator ma następującą strukturę:

1223128da3_0_0_0
^^^^^^^^^^ hash pliku
           ^ indeks pakietu testów
             ^ indeks zagnieżdżonego pakietu testów
               ^ 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 jest ustawiona
);

DANGER

Nie próbuj parsować identyfikatora. Może on mieć na początku znak minus: -1223128da3_0_0_0.

location ​

Lokalizacja w module, w którym zdefiniowano zestaw testów. Lokalizacje są zbierane tylko wtedy, gdy w konfiguracji includeTaskLocation jest włączona. Zauważ, że ta opcja jest automatycznie włączana, jeśli użyto flag --reporter=html, --ui lub --browser.

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

ts
import { describe } from 'vitest'

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

parent ​

Nadrzędny zestaw testów. Jeśli zestaw testów 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 zestaw testów został zebrany.

children ​

To kolekcja wszystkich pakietów testów i testów w bieżącym zestawie testów.

ts
for (const task of suite.children) {
  if (task.type === 'test') {
    console.log('test', task.fullName);
  } else {
    // task to TaskSuite
    console.log('suite', task.name);
  }
}

WARNING

Zauważ, że suite.children iteruje tylko po pierwszym poziomie zagnieżdżenia, nie zagłębiając się. Jeśli potrzebujesz iterować po wszystkich testach lub pakietach testów, użyj children.allTests() lub children.allSuites(). Jeśli potrzebujesz iterować przez wszystko, użyj funkcji rekurencyjnej:

ts
function visit(collection: TestCollection) {
  for (const task of collection) {
    if (task.type === 'suite') {
      // przetwórz pakiet testów
      visit(task.children);
    } else {
      // przetwórz test
    }
  }
}

ok ​

ts
function ok(): boolean;

Sprawdza, czy w pakiecie testów są jakieś nieudane testy. Zwróci również false, jeśli zestaw testów nie udało się zebrać. W takim przypadku sprawdź errors() w poszukiwaniu zgłoszonych błędów.

state ​

ts
function state(): TestSuiteState;

Sprawdza stan wykonania zestawu testów. Możliwe wartości zwracane:

  • pending: testy w tym pakiecie testów jeszcze się nie zakończyły.
  • failed: ten pakiet testów zawiera nieudane testy lub nie udało się go zebrać. Jeśli errors() nie jest puste, oznacza to, że zbieranie testów dla tego pakietu nie powiodło się.
  • passed: każdy test w tym pakiecie testów zakończył się pomyślnie.
  • skipped: ten pakiet testów został pominięty podczas zbierania.

WARNING

Zauważ, że moduł testowy również posiada metodę state, która zwraca te same wartości, ale może również zwrócić dodatkowy stan queued, jeśli moduł nie został jeszcze uruchomiony.

errors ​

ts
function errors(): TestError[];

Błędy, które wystąpiły poza wykonaniem testu podczas zbierania, takie jak błędy składniowe.

ts
import { describe } from 'vitest';

describe('collection failed', () => {
  throw new Error('a custom error');
});

WARNING

Zauważ, że błędy są serializowane jako proste obiekty: instanceof Error zawsze zwróci false.

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

Niestandardowe metadane, które zostały dołączone do pakietu testów w trakcie jego wykonania lub zbierania. Metadane można dołączyć, przypisując właściwość do obiektu task.meta w trakcie przebiegu testu:

ts
import { test } from 'vitest';

describe('the validation works correctly', task => {
  // ustaw "decorated" podczas zbierania
  task.meta.decorated = false;

  test('some test', ({ task }) => {
    // ustaw "decorated" podczas przebiegu testu; będzie dostępne
    // wyłącznie w hooku onTestCaseReady
    task.suite.meta.decorated = false;
  });
});

TIP

Jeśli metadane zostały dołączone podczas zbierania (poza funkcją test), będą dostępne w hooku onTestModuleCollected w niestandardowym raporcie testów.

Pager
Poprzednia stronaTestCase
Następna stronaTestModule

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team

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

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team