Rozšířené API
WARNING
Tato příručka popisuje pokročilá API pro spouštění testů pomocí skriptu Node.js. Pokud chcete pouze spouštět testy, pravděpodobně je nebudete potřebovat. Používají je především autoři knihoven.
Můžete importovat jakoukoli metodu z vstupního bodu vitest/node.
startVitest
function startVitest(
mode: VitestRunMode,
cliFilters: string[] = [],
options: CliOptions = {},
viteOverrides?: ViteUserConfig,
vitestOptions?: VitestOptions
): Promise<Vitest>;Testy Vitest můžete začít spouštět pomocí jeho Node API:
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest.close();Funkce startVitest vrátí instanci Vitest, pokud se testy podaří spustit.
Pokud není povolen režim sledování (watch mode), Vitest automaticky zavolá metodu close.
Pokud je režim sledování povolen a terminál podporuje TTY, Vitest zaregistruje klávesové zkratky pro konzoli.
Jako druhý argument můžete předat seznam filtrů. Vitest spustí pouze ty testy, jejichž cesta k souboru obsahuje alespoň jeden z předaných řetězců.
Dále můžete použít třetí argument k předání argumentů CLI, které přebijí jakékoli možnosti konfigurace testu. Alternativně můžete jako čtvrtý argument předat kompletní konfiguraci Vite, která bude mít přednost před jakýmikoli jinými uživatelsky definovanými možnostmi.
Po spuštění testů můžete získat výsledky z API state.getTestModules:
import type { TestModule } from 'vitest/node';
const vitest = await startVitest('test');
console.log(vitest.state.getTestModules()); // [TestModule]TIP
Příručka "Spouštění testů" obsahuje příklad použití.
createVitest
function createVitest(
mode: VitestRunMode,
options: CliOptions,
viteOverrides: ViteUserConfig = {},
vitestOptions: VitestOptions = {}
): Promise<Vitest>;Instanci Vitest můžete vytvořit pomocí funkce createVitest. Vrací stejnou instanci Vitest jako startVitest, ale nespouští testy a neověřuje nainstalované balíčky.
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});TIP
Příručka "Spouštění testů" obsahuje příklad použití.
resolveConfig
function resolveConfig(
options: UserConfig = {},
viteOverrides: ViteUserConfig = {}
): Promise<{
vitestConfig: ResolvedConfig;
viteConfig: ResolvedViteConfig;
}>;Tato metoda slouží k vyřešení konfigurace s vlastními parametry. Pokud nejsou zadány žádné parametry, root bude nastaven na process.cwd().
import { resolveConfig } from 'vitest/node';
// vitestConfig obsahuje pouze vyřešené vlastnosti "test"
const { vitestConfig, viteConfig } = await resolveConfig({
mode: 'custom',
configFile: false,
resolve: {
conditions: ['custom'],
},
test: {
setupFiles: ['/my-setup-file.js'],
pool: 'threads',
},
});INFO
Vzhledem k tomu, jak funguje createServer ve Vite, musí Vitest vyřešit konfiguraci během hooku configResolve pluginu. Proto se tato metoda ve skutečnosti interně nepoužívá a je vystavena výhradně jako veřejné API.
Pokud předáte konfiguraci do API startVitest nebo createVitest, Vitest konfiguraci znovu vyřeší.
WARNING
resolveConfig neřeší projekty. Pro vyřešení konfigurací projektů potřebuje Vitest běžící server Vite.
Také si dejte pozor, že viteConfig.test nebude plně vyřešen. Pokud potřebujete konfiguraci Vitest, použijte místo toho vitestConfig.
parseCLI
function parseCLI(
argv: string | string[],
config: CliParseOptions = {}
): {
filter: string[];
options: CliOptions;
};Tuto metodu můžete použít k parsování argumentů CLI. Přijímá řetězec (kde jsou argumenty odděleny jednou mezerou) nebo pole řetězců argumentů CLI ve stejném formátu, jaký používá Vitest CLI. Vrací filtr a options, které můžete později předat metodám createVitest nebo startVitest.
import { parseCLI } from 'vitest/node';
const result = parseCLI('vitest ./files.ts --coverage --browser=chrome');
result.options;
// {
// coverage: { enabled: true },
// browser: { name: 'chrome', enabled: true }
// }
result.filter;
// ['./files.ts']