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:
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.
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":
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 testuTIP
Hash souboru můžete vygenerovat pomocí funkce generateFileHash z vitest/node, která je dostupná od Vitest 3:
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 }:
import { describe } from 'vitest'
describe('the validation works correctly', () => {
// ...
})parent
Nadřazená testovací sada. Pokud byla testovací sada volána přímo uvnitř modulu, rodičem bude samotný modul.
options
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.
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:
function visit(collection: TestCollection) {
for (const task of collection) {
if (task.type === 'suite') {
// zpracovat testovací sadu
visit(task.children);
} else {
// zpracovat test
}
}
}ok
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
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
function errors(): TestError[];Chyby, které se vyskytly mimo spuštění testu během shromažďování, jako jsou syntaktické chyby.
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+
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:
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.