Skip to content
Vitest 0
Main Navigation PrůvodceAPIKonfiguracePokročilý
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

Průvodce

Proč Vitest

Začínáme

Funkce

Pracovní prostor

Rozhraní příkazového řádku

Filtrování testů

Pokrytí

Snímky

Mockování

Testování typů

Vitest UI

Režim prohlížeče (experimentální)

Testování ve zdrojovém kódu

Kontext testu

Testovací prostředí

Rozšíření matcherů/porovnávačů

Integrace do IDE

Ladění

Srovnání s jinými testovacími nástroji

Průvodce migrací

Běžné chyby

API

Referenční příručka k Test API

Mockování funkcí

Vi

expect

expectTypeOf

assertType

Konfigurace

Konfigurace Vitest

Na této stránce

Pracovní prostor ​

Vitest nativně podporuje monorepozitáře prostřednictvím konfiguračního souboru pracovního prostoru. Pracovní prostor umožňuje definovat nastavení pro jednotlivé projekty v rámci monorepozitáře.

Definování pracovního prostoru ​

Soubor vitest.workspace nebo vitest.projects by měl být umístěn v kořenovém adresáři (ve stejné složce jako hlavní konfigurační soubor, pokud existuje). Vitest podporuje přípony ts, js a json pro tento soubor.

Konfigurační soubor pracovního prostoru by měl exportovat pole souborů nebo glob vzorů odkazujících na jednotlivé projekty. Například, pokud máte složku s projekty s názvem packages, můžete definovat pracovní prostor pomocí následujícího konfiguračního souboru:

ts
export default ['packages/*'];

Vitest bude považovat každou složku v packages za samostatný projekt, i když neobsahuje vlastní konfigurační soubor.

WARNING

Vitest nebude považovat kořenovou konfiguraci za projekt pracovního prostoru (a tedy nespustí testy definované v include), pokud není explicitně uveden v konfiguraci pracovního prostoru.

Můžete také odkazovat na projekty pomocí cesty k jejich konfiguračním souborům:

ts
export default ['packages/*/vitest.config.{e2e,unit}.ts'];

Tento vzor zahrne pouze projekty, které mají soubor vitest.config s příponou e2e nebo unit.

WARNING

Pokud používáte glob vzory pro odkazování na konfigurační soubory, ujistěte se, že název souboru začíná na vite.config nebo vitest.config. V opačném případě jej Vitest ignoruje.

Projekty lze definovat i inline, přímo v konfiguračním souboru pracovního prostoru. Soubor pracovního prostoru podporuje kombinaci obou syntaxí.

ts
import { defineWorkspace } from 'vitest/config';

// defineWorkspace poskytuje typovou nápovědu pro lepší vývojářskou zkušenost (DX)
export default defineWorkspace([
  'packages/*',
  {
    // přidejte "extends" pro sloučení konfigurací
    extends: './vite.config.js',
    test: {
      include: ['tests/**/*.{browser}.test.{ts,js}'],
      // doporučuje se definovat název při použití inline konfigurací
      name: 'happy-dom',
      environment: 'happy-dom',
    },
  },
  {
    test: {
      include: ['tests/**/*.{node}.test.{ts,js}'],
      name: 'node',
      environment: 'node',
    },
  },
]);

WARNING

Všechny projekty musí mít unikátní názvy. V opačném případě Vitest ohlásí chybu. Pokud název nezadáte v inline konfiguraci, Vitest automaticky přiřadí číselný název. Pokud název nezadáte v konfiguraci projektu definované pomocí glob syntaxe, Vitest použije název adresáře.

Pokud neplánujete používat inline konfigurace, můžete vytvořit jednoduchý JSON soubor v kořenovém adresáři:

json
["packages/*"]

Projekty pracovního prostoru nepodporují všechny konfigurační vlastnosti. Pro lepší typovou bezpečnost doporučujeme používat metodu defineProject namísto defineConfig v konfiguračních souborech projektu.

ts
import { defineProject } from 'vitest/config';

export default defineProject({
  test: {
    environment: 'jsdom',
    // "reporters" nejsou podporováni v konfiguraci projektu,
    // takže se zobrazí chyba
    reporters: ['json'],
  },
});

Konfigurace ​

Žádná z konfiguračních voleb se nedědí z kořenového konfiguračního souboru. Můžete vytvořit sdílený konfigurační soubor a sloučit jej s konfigurací projektu:

ts
import { defineProject, mergeConfig } from 'vitest/config';
import configShared from '../vitest.shared.js';

export default mergeConfig(
  configShared,
  defineProject({
    test: {
      environment: 'jsdom',
    },
  })
);

Některé konfigurační volby nejsou v konfiguraci projektu povoleny. Patří mezi ně:

  • coverage: pokrytí se vztahuje na celý pracovní prostor
  • reporters: jsou podporováni pouze reportéři definovaní na kořenové úrovni
  • resolveSnapshotPath: je respektován pouze resolver definovaný na kořenové úrovni
  • všechny ostatní možnosti, které neovlivňují spouštěče testů

TIP

Všechny konfigurační volby, které nejsou podporovány v konfiguraci projektu, jsou na stránce "Config" označeny značkou *.

Pokrytí ​

Pokrytí kódu pro projekty pracovního prostoru funguje automaticky, bez nutnosti další konfigurace. Pokud máte povolenou volbu all a používáte v některých projektech nekonvenční přípony souborů, budete potřebovat plugin, který tyto přípony zpracuje v kořenovém konfiguračním souboru.

Například, pokud máte balíček, který používá Vue soubory a má vlastní konfigurační soubor, ale některé z těchto souborů nejsou importovány v testech, pokrytí selže, protože se při analýze nepoužívaných souborů spoléhá na kořenovou konfiguraci, a nikoli na konfiguraci projektu.

Pager
Předchozí stránkaFunkce
Další stránkaRozhraní příkazového řádku

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors

https://v0.vitest.dev/guide/workspace

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors