Skip to content
Vitest 3
Main Navigation Przewodnik & APIKonfiguracjaTryb przeglądarkiZaawansowane API
3.2.0
2.1.9
1.6.1
0.34.6

Polski

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Türkçe
čeština
magyar

Polski

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Türkçe
čeština
magyar

Wygląd

Sidebar Navigation

API

Node API

Zaawansowane API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API wtyczek

API modułu uruchamiającego

Reportery

Metadane zadań

Przewodnik

Uruchamianie testów

Rozszerzanie Reporterów

Niestandardowa pula

Konfiguracja Vitest

Dokumentacja API testowego

Na tej stronie

API wtyczek 3.1.0+ ​

WARNING

Jest to zaawansowane API. Jeśli Twoim celem jest jedynie uruchomienie testów, prawdopodobnie nie będziesz go potrzebować. Jest ono głównie przeznaczone dla twórców bibliotek.

Niniejszy przewodnik zakłada znajomość pracy z wtyczkami Vite.

Vitest obsługuje eksperymentalny hook wtyczki configureVitest od wersji 3.1. Wszelkie uwagi dotyczące tego API są mile widziane na GitHubie.

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 re-eksportuje wszystkie typy Vite poprzez przestrzeń nazw Vite, co pozwala na synchronizację wersji. Jeśli jednak tworzysz wtyczkę zarówno dla Vite, jak i Vitest, możesz nadal używać typu Plugin z punktu wejścia vite. Upewnij się tylko, że masz gdzieś odwołanie do vitest/config, aby configureVitest został poprawnie rozszerzony:

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

W przeciwieństwie do reporter.onInit, ten hook uruchamia się wcześnie w cyklu życia Vitest, umożliwiając wprowadzanie zmian w konfiguracji, takich jak coverage i reporters. Co ważniejsze, możesz manipulować globalną konfiguracją z projektu testowego, jeśli Twoja wtyczka jest zdefiniowana w projekcie, a nie w globalnej konfiguracji.

Kontekst ​

project ​

Bieżący projekt testowy, do którego należy wtyczka.

Tryb przeglądarki

Zauważ, że jeśli korzystasz z funkcji przeglądarki, pole project.browser nie jest jeszcze ustawione. Zamiast tego użyj zdarzenia reporter.onBrowserInit.

vitest ​

Globalna instancja Vitest. Możesz zmienić globalną konfigurację, bezpośrednio modyfikując właściwość vitest.config:

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

Konfiguracja jest przetworzona

Zauważ, że Vitest już przetworzył konfigurację, więc niektóre typy mogą różnić się od typowej konfiguracji użytkownika. Oznacza to również, że niektóre właściwości nie zostaną ponownie przetworzone, takie jak setupFile. Jeśli dodajesz nowe pliki, upewnij się, że najpierw je przetworzysz.

W tym momencie instancje raportów jeszcze nie zostały utworzone, więc modyfikacja vitest.reporters nie przyniesie żadnego efektu, ponieważ zostanie nadpisana. Jeśli musisz wstrzyknąć własny raportujący, zamiast tego zmodyfikuj konfigurację.

injectTestProjects ​

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

Ta metoda akceptuje wzorzec glob dla konfiguracji, ścieżkę do pliku konfiguracyjnego lub konfigurację wbudowaną. Zwraca tablicę przetworzonych projektów testowych.

ts
// dodaj pojedynczy projekt z niestandardowym aliasem
const newProjects = await injectTestProjects({
  // możesz dziedziczyć bieżącą konfigurację projektu, odwołując się do właściwości `extends`
  // zauważ, że nie możesz mieć projektu o już istniejącej nazwie,
  // więc dobrą praktyką jest zdefiniowanie niestandardowej nazwy
  extends: project.vite.config.configFile,
  test: {
    name: 'my-custom-alias',
    alias: {
      customAlias: resolve('./custom-path.js'),
    },
  },
});

Projekty są filtrowane

Vitest filtruje projekty podczas przetwarzania konfiguracji. Jeśli użytkownik zdefiniował filtr, dodany projekt może nie zostać przetworzony, chyba że pasuje do filtra. Możesz zaktualizować filtr za pomocą opcji vitest.config.project, aby zawsze uwzględniać swój projekt testowy:

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

Zauważ, że będzie to miało wpływ tylko na projekty wstrzyknięte za pomocą metody injectTestProjects.

Odwoływanie się do bieżącej konfiguracji

Jeśli chcesz zachować konfigurację użytkownika, możesz użyć właściwości extends. Wszystkie inne właściwości zostaną połączone z konfiguracją użytkownika.

Dostęp do pliku configFile projektu można uzyskać w konfiguracji Vite: project.vite.config.configFile.

Zauważ, że to również odziedziczy nazwę – Vitest nie pozwala na istnienie wielu projektów o tej samej nazwie, co spowoduje błąd. Upewnij się, że określono unikalną nazwę. Bieżąca nazwa jest dostępna poprzez właściwość project.name, a wszystkie używane nazwy są dostępne w tablicy vitest.projects.

Pager
Poprzednia stronaTestCollection
Następna stronaAPI modułu uruchamiającego

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team

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

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team