Skip to content
Vitest 3
Main Navigation Průvodce & APIKonfiguraceRežim prohlížečePokročilé API
3.2.0
2.1.9
1.6.1
0.34.6

čeština

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
magyar

čeština

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
magyar

Vzhled

Sidebar Navigation

API

Node API

Rozšířené API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

Plugin API

Runner API

Reportéry

Metadata úloh

Průvodce

Spouštění testů

Rozšíření reportérů

Vlastní pool

Konfigurace Vitestu

Testovací reference API

Na této stránce

TestSuite ​

Třída TestSuite reprezentuje jednu testovací sadu. Tato třída je dostupná pouze v hlavním vlákně. Pokud pracujete s úlohami běžícími v runneru, viz "Runner API".

Instance TestSuite má vždy vlastnost type s hodnotou suite. Můžete ji použít k rozlišení různých typů úloh:

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

project ​

Odkazuje na TestProject, do kterého testovací sada patří.

module ​

Jedná se o přímý odkaz na TestModule, kde je testovací sada definována.

name ​

Jedná se o název testovací sady, který byl předán funkci describe.

ts
import { describe } from 'vitest';

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

fullName ​

Název sady, včetně všech nadřazených sad, oddělených symbolem >. Tato sada má plný název "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 ​

Jedná se o jedinečný identifikátor sady. Toto ID je deterministické a zůstane stejné pro stejnou sadu při vícenásobných spuštěních. ID je založeno na názvu projektu, ID modulu a pořadí testovací sady.

ID vypadá takto:

1223128da3_0_0_0
^^^^^^^^^^ hash souboru
           ^ index testovací sady
             ^ index vnořené testovací sady
               ^ index testu

TIP

Hash souboru můžete vygenerovat pomocí funkce generateFileHash z vitest/node, která je dostupná od Vitest 3:

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

const hash = generateFileHash(
  '/file/path.js', // relativní cesta
  undefined // název projektu nebo `undefined`, pokud není nastaven
);

DANGER

Nepokoušejte se ID parsovat. Může mít na začátku znaménko mínus: -1223128da3_0_0_0.

location ​

Umístění v modulu, kde byla testovací sada definována. Umístění se shromažďují pouze v případě, že je v konfiguraci povolena možnost includeTaskLocation. Všimněte si, že tato možnost je automaticky povolena, pokud se použijí příznaky --reporter=html, --ui nebo --browser.

Umístění této testovací sady bude rovno { line: 3, column: 1 }:

ts
import { describe } from 'vitest'

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

parent ​

Nadřazená testovací sada. Pokud byla testovací sada volána přímo uvnitř modulu, rodičem bude samotný modul.

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';
}

Možnosti, s nimiž byla testovací sada shromážděna.

children ​

Jedná se o kolekci všech testovacích sad a testů uvnitř aktuální testovací sady.

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

WARNING

Všimněte si, že suite.children prochází pouze první úroveň vnoření, nepůjde hlouběji. Pokud potřebujete iterovat přes všechny testy nebo testovací sady, použijte children.allTests() nebo children.allSuites(). Pokud potřebujete iterovat přes vše, použijte rekurzivní funkci:

ts
function visit(collection: TestCollection) {
  for (const task of collection) {
    if (task.type === 'suite') {
      // zpracovat testovací sadu
      visit(task.children);
    } else {
      // zpracovat test
    }
  }
}

ok ​

ts
function ok(): boolean;

Kontroluje, zda testovací sada obsahuje nějaké neúspěšné testy. Také vrátí false, pokud testovací sada selhala při shromažďování. V takovém případě zkontrolujte errors() pro zjištění vyhozených chyb.

state ​

ts
function state(): TestSuiteState;

Kontroluje stav spuštění testovací sady. Možné návratové hodnoty:

  • pending: testy v této testovací sadě ještě nedokončily spuštění.
  • failed: tato testovací sada má neúspěšné testy nebo ji nebylo možné shromáždit. Pokud errors() není prázdné, znamená to, že testovací sada selhala při shromažďování testů.
  • passed: každý test uvnitř této testovací sady prošel.
  • skipped: tato testovací sada byla přeskočena během shromažďování.

WARNING

Všimněte si, že testovací modul má také metodu state, která vrací stejné hodnoty, ale může také vrátit dodatečný stav queued, pokud modul ještě nebyl spuštěn.

errors ​

ts
function errors(): TestError[];

Chyby, které se vyskytly mimo spuštění testu během shromažďování, jako jsou syntaktické chyby.

ts
import { describe } from 'vitest';

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

WARNING

Všimněte si, že chyby jsou serializovány do jednoduchých objektů: instanceof Error vždy vrátí false.

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

Vlastní metadata, která byla připojena k testovací sadě během jejího spuštění nebo shromažďování. Metadata lze připojit přiřazením vlastnosti k objektu task.meta během spuštění testu:

ts
import { test } from 'vitest';

describe('the validation works correctly', task => {
  // přiřadit "decorated" během shromažďování
  task.meta.decorated = false;

  test('some test', ({ task }) => {
    // přiřadit "decorated" během spuštění testu; bude k dispozici
    // pouze v hooku `onTestCaseReady`
    task.suite.meta.decorated = false;
  });
});

TIP

Pokud byla metadata připojena během shromažďování (mimo funkci test), pak budou k dispozici v hooku onTestModuleCollected ve vlastním reportéru.

Pager
Předchozí stránkaTestCase
Další stránkaTestModule

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team

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

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team