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

TestCase ​

Třída TestCase reprezentuje jeden test. Tato třída je dostupná pouze v hlavním vlákně. Pokud pracujete s úlohami za běhu, podívejte se na "Runner API".

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

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

project ​

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

module ​

Toto je přímý odkaz na TestModule, kde je test definován.

name ​

Jedná se o název testu předaný funkci test.

ts
import { test } from 'vitest';

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

fullName ​

Název testu včetně všech nadřazených testovacích sad oddělených symbolem >. Tento test má plný název "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 ​

Jedná se o jedinečný identifikátor testu. Toto ID je deterministické a bude stejné pro stejný test při více spuštěních. ID je založeno na názvu projektu, ID modulu a pořadí testu.

ID vypadá takto:

1223128da3_0_0
^^^^^^^^^^ hash souboru
           ^ index sady
             ^ index testu

TIP

Hash souboru můžete vygenerovat pomocí funkce generateFileHash z vitest/node, která je k dispozici 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 parsovat ID. Může mít na začátku záporné znaménko: -1223128da3_0_0_0.

location ​

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

Umístění tohoto testu bude rovno { line: 3, column: 1 }:

ts
import { test } from 'vitest'

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

parent ​

Nadřazená sada. Pokud byl test volán přímo uvnitř modulu, rodičem je 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';
}

Nastavení, se kterými byl test shromážděn.

ok ​

ts
function ok(): boolean;

Kontroluje, zda test nezpůsobil selhání sady. Pokud test ještě není dokončen nebo byl přeskočen, vrátí true.

meta ​

ts
function meta(): TaskMeta;

Vlastní metadata, která byla připojena k testu během jeho provádění. Metadata lze připojit přiřazením vlastnosti k objektu ctx.task.meta během spuštění testu:

ts
import { test } from 'vitest';

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

  task.meta.decorated = false;
});

Pokud test ještě nedokončil běh, meta bude prázdný objekt.

result ​

ts
function result(): TestResult;

Výsledky testování. Pokud test ještě není dokončen nebo byl právě načten, bude roven TestResultPending:

ts
export interface TestResultPending {
  /**
   * Test byl načten, ale ještě nedokončil běh.
   */
  readonly state: 'pending';
  /**
   * Čekající testy nemají žádné chyby.
   */
  readonly errors: undefined;
}

Pokud byl test přeskočen, návratová hodnota bude TestResultSkipped:

ts
interface TestResultSkipped {
  /**
   * Test byl přeskočen s příznakem `skip` nebo `todo`.
   * Můžete zjistit, který byl použit v možnosti `options.mode`.
   */
  readonly state: 'skipped';
  /**
   * Přeskočené testy nemají žádné chyby.
   */
  readonly errors: undefined;
  /**
   * Vlastní poznámka předaná do `ctx.skip(note)`.
   */
  readonly note: string | undefined;
}

TIP

Pokud byl test přeskočen, protože jiný test má příznak only, options.mode bude rovno skip.

Pokud test selhal, návratová hodnota bude TestResultFailed:

ts
interface TestResultFailed {
  /**
   * Test se nepodařilo provést.
   */
  readonly state: 'failed';
  /**
   * Chyby, které vznikly během provádění testu.
   */
  readonly errors: ReadonlyArray<TestError>;
}

Pokud test proběhl úspěšně, návratová hodnota bude TestResultPassed:

ts
interface TestResultPassed {
  /**
   * Test proběhl úspěšně.
   */
  readonly state: 'passed';
  /**
   * Chyby, které vznikly během provádění testu.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

Všimněte si, že test se stavem passed může mít stále připojené chyby – to se může stát, pokud bylo spuštěno retry alespoň jednou.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

Užitečné informace o testu, jako je doba trvání, využití paměti atd.:

ts
interface TestDiagnostic {
  /**
   * Pokud doba trvání testu přesahuje `slowTestThreshold`.
   */
  readonly slow: boolean;
  /**
   * Množství paměti, které test použil, v bajtech.
   * Tato hodnota je dostupná pouze v případě, že test byl proveden s příznakem `logHeapUsage`.
   */
  readonly heap: number | undefined;
  /**
   * Doba potřebná k provedení testu v ms.
   */
  readonly duration: number;
  /**
   * Čas spuštění testu v ms.
   */
  readonly startTime: number;
  /**
   * Počet opakování, kolikrát byl test zopakován.
   */
  readonly retryCount: number;
  /**
   * Počet opakování, kolikrát byl test zopakován podle konfigurace volby `repeats`.
   * Tato hodnota může být nižší, pokud test selhal během opakování a není nakonfigurováno žádné `retry`.
   */
  readonly repeatCount: number;
  /**
   * Pokud test prošel při druhém pokusu.
   */
  readonly flaky: boolean;
}

INFO

diagnostic() vrátí undefined, pokud test ještě nebyl naplánován ke spuštění.

Pager
Předchozí stránkaTestSpecification
Další stránkaTestSuite

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team

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

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team