TestModule
Třída TestModule
reprezentuje jeden modul v rámci projektu. Tato třída je dostupná pouze v hlavním vlákně. Pro práci s runtime úkoly se podívejte na "Runner API".
Instance TestModule
má vždy vlastnost type
s hodnotou module
. Tuto vlastnost můžete použít k rozlišení mezi různými typy úkolů:
if (task.type === 'module') {
task; // TestModule
}
Rozšíření metod testovací sady
Třída TestModule
dědí všechny metody a vlastnosti z TestSuite
. Tato příručka uvádí pouze metody a vlastnosti, které jsou specifické pro TestModule
.
moduleId
Obvykle se jedná o absolutní cestu k souboru ve formátu Unix (i na Windows). Může to být virtuální identifikátor, pokud soubor není uložen na disku. Tato hodnota odpovídá ID ModuleGraph
používanému ve Vite.
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌
state
function state(): TestModuleState;
Funguje stejně jako testSuite.state()
. Může však také vrátit queued
, pokud modul ještě nebyl spuštěn.
meta 3.1.0+
function meta(): TaskMeta;
Vlastní metadata, která byla připojena k modulu během jeho spuštění nebo sběru. Metadata lze přidat přiřazením vlastnosti k objektu task.meta
během testovacího běhu:
import { test } from 'vitest';
describe('the validation works correctly', task => {
// přiřazeno "decorated" během sběru
task.file.meta.decorated = false;
test('some test', ({ task }) => {
// přiřazeno "decorated" během testovacího běhu, bude dostupné
// pouze v hooku onTestCaseReady
task.file.meta.decorated = false;
});
});
TIP
Pokud byla metadata připojena během sběru (mimo funkci test
), pak budou k dispozici v hooku onTestModuleCollected
ve vlastním reportéru.
diagnostic
function diagnostic(): ModuleDiagnostic;
Užitečné informace o modulu, jako je doba trvání, využití paměti a další. Pokud modul ještě nebyl spuštěn, všechny diagnostické hodnoty budou 0
.
interface ModuleDiagnostic {
/**
* Doba potřebná k importu a inicializaci prostředí.
*/
readonly environmentSetupDuration: number;
/**
* Doba potřebná pro Vitest k nastavení testovacího prostředí (runner, mocky atd.).
*/
readonly prepareDuration: number;
/**
* Doba potřebná k importu testovacího modulu.
* Zahrnuje import všeho v modulu a spuštění callbacků sady.
*/
readonly collectDuration: number;
/**
* Doba potřebná k importu modulu nastavení.
*/
readonly setupDuration: number;
/**
* Kumulovaná doba trvání všech testů a hooků v modulu.
*/
readonly duration: number;
/**
* Množství paměti použité modulem v bajtech.
* Tato hodnota je dostupná pouze v případě, že test byl spuštěn s příznakem `logHeapUsage`.
*/
readonly heap: number | undefined;
/**
* Čas strávený importem každé ne-externalizované závislosti, kterou Vitest zpracoval.
*/
readonly importDurations: Record<string, ImportDuration>;
}
/** Čas strávený importem a spuštěním ne-externalizovaného souboru. */
interface ImportDuration {
/** Čas strávený importem a spuštěním samotného souboru, nepočítaje všechny ne-externalizované importy, které soubor provádí. */
selfTime: number;
/** Čas strávený importem a spuštěním souboru a všech jeho importů. */
totalTime: number;
}