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

Plugin API 3.1.0+ ​

WARNING

Toto je pokročilé rozhraní API. Pokud chcete pouze spouštět testy, pravděpodobně ho nepotřebujete. Primárně je určeno pro autory knihoven.

Tato příručka předpokládá, že znáte práci s Vite pluginy.

Vitest podporuje experimentální pluginový hook configureVitest od verze 3.1. Veškeré připomínky k tomuto API jsou vítány na GitHubu.

ts
import type { Vite, VitestPluginContext } from 'vitest/node';

export function plugin(): Vite.Plugin {
  return {
    name: 'vitest:my-plugin',
    configureVitest(context: VitestPluginContext) {
      // ...
    },
  };
}
ts
/// <reference types="vitest/config" />

import type { Plugin } from 'vite';

export function plugin(): Plugin {
  return {
    name: 'vitest:my-plugin',
    transform() {
      // ...
    },
    configureVitest(context) {
      // ...
    },
  };
}

TypeScript

Vitest znovu exportuje všechny importy typů z Vite prostřednictvím jmenného prostoru Vite, který můžete použít pro udržení synchronizovaných verzí. Pokud však píšete plugin pro Vite i Vitest, můžete nadále používat typ Plugin z vstupního bodu vite. Jen se ujistěte, že máte někde odkazováno vitest/config, aby byl configureVitest správně rozšířen:

ts
/// <reference types="vitest/config" />

Na rozdíl od reporter.onInit se tento hook spouští brzy v životním cyklu Vitestu, což vám umožňuje provádět změny v konfiguraci, jako je coverage a reporters. Významnější změnou je, že můžete manipulovat s globální konfigurací testovacího projektu, pokud je váš plugin definován v projektu a ne v globální konfiguraci.

Kontext ​

project ​

Aktuální testovací projekt, jemuž plugin náleží.

Režim prohlížeče

Všimněte si, že pokud se spoléháte na funkci prohlížeče, pole project.browser ještě není nastaveno. Místo toho použijte událost reporter.onBrowserInit.

vitest ​

Globální instance Vitestu. Globální konfiguraci můžete změnit přímo úpravou vlastnosti vitest.config:

ts
vitest.config.coverage.enabled = false;
vitest.config.reporters.push([['my-reporter', {}]]);

Konfigurace je vyřešena

Pozor, Vitest již konfiguraci zpracoval, takže některé typy se mohou lišit od běžné uživatelské konfigurace. To také znamená, že některé vlastnosti nebudou znovu vyřešeny, jako například setupFile. Pokud přidáváte nové soubory, ujistěte se, že je nejprve správně odkážete.

V tomto okamžiku ještě nejsou vytvořeny reportéry, takže úprava vitest.reporters nebude mít žádný efekt, protože bude přepsána. Pokud potřebujete vložit svůj vlastní reportér, upravte místo toho konfiguraci.

injectTestProjects ​

ts
function injectTestProjects(
  config: TestProjectConfiguration | TestProjectConfiguration[]
): Promise<TestProject[]>;

Tato metoda přijímá konfigurační glob vzor, cestu k souboru konfigurace nebo inline konfiguraci. Vrací pole vyřešených testovacích projektů.

ts
// vloží jeden projekt s vlastním aliasem
const newProjects = await injectTestProjects({
  // můžete zdědit konfiguraci aktuálního projektu odkazem na `extends`
  // všimněte si, že nemůžete mít projekt se jménem, které již existuje,
  // takže je dobrým zvykem definovat vlastní jméno
  extends: project.vite.config.configFile,
  test: {
    name: 'my-custom-alias',
    alias: {
      customAlias: resolve('./custom-path.js'),
    },
  },
});

Projekty jsou filtrovány

Vitest filtruje projekty během řešení konfigurace, takže pokud uživatel definoval filtr, vložený projekt nemusí být vyřešen, pokud neodpovídá filtru. Filtr můžete aktualizovat pomocí možnosti vitest.config.project, aby vždy zahrnoval váš testovací projekt:

ts
vitest.config.project.push('my-project-name');

Pozor, to se týká pouze projektů přidaných metodou injectTestProjects.

Odkazování na aktuální konfiguraci

Chcete-li zachovat uživatelskou konfiguraci, můžete specifikovat vlastnost extends. Všechny ostatní vlastnosti budou sloučeny s uživatelskou konfigurací.

Konfigurační soubor projektu (configFile) je přístupný v konfiguraci Vite: project.vite.config.configFile.

Všimněte si, že to také zdědí name – Vitest nepovoluje více projektů se stejným názvem, takže to vyvolá chybu. Ujistěte se, že jste zadali jiné jméno. Aktuální název získáte z vlastnosti project.name a všechna použitá jména jsou k dispozici v poli vitest.projects.

Pager
Předchozí stránkaTestCollection
Další stránkaRunner API

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/plugin

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team