Skip to content
Vitest 0
Main Navigation ÚtmutatóAPIKonfigurációHaladó
1.6.1
0.34.6

magyar

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

magyar

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

Megjelenés

Sidebar Navigation

Útmutató

Miért a Vitest?

Első lépések

Funkciók

Munkaterület

Parancssori felület

Tesztszűrés

Lefedettség

Pillanatképek

Mockolás

Típusok tesztelése

Vitest UI

Böngésző mód (kísérleti)

Forráskódba épített tesztelés

Tesztkörnyezet

Tesztkörnyezet

Egyezésvizsgálók kiterjesztése

IDE integrációk

Hibakeresés

Összehasonlítás más tesztfuttatókkal

Migrálási útmutató

Gyakori hibák

API

Teszt API Dokumentáció

Mock függvények

Vi

expect

expectTypeOf

assertType

Konfiguráció

Vitest konfigurálása

Ezen az oldalon

Munkaterület ​

A Vitest beépített támogatást nyújt a monorepository-khoz egy munkaterület konfigurációs fájlon keresztül. Létrehozhatsz egy munkaterületet a projektek beállításainak meghatározásához.

Munkaterület definiálása ​

Egy munkaterületnek a gyökérmappájában (abban a mappában, ahol a konfigurációs fájl is található, ha van ilyen) kell tartalmaznia egy vitest.workspace vagy vitest.projects fájlt. A Vitest támogatja a ts, js és json kiterjesztéseket ezekhez a fájlokhoz.

A munkaterület konfigurációs fájljának egy alapértelmezett exporttal kell rendelkeznie, ami a projektekre mutató fájlok vagy glob minták listája. Például, ha van egy mappád a projektjeiddel, amelynek neve packages, definiálhatsz egy munkaterületet ezzel a konfigurációs fájllal:

ts
export default ['packages/*'];

A Vitest a packages mappában található minden mappát külön projektként kezeli, még akkor is, ha azok nem tartalmaznak konfigurációs fájlt.

WARNING

A Vitest nem tekinti a gyökér konfigurációt munkaterület projektnek (tehát nem futtatja az include-ban megadott teszteket), hacsak nincs megadva ebben a konfigurációban.

Projektekre a konfigurációs fájljaik segítségével is hivatkozhatsz:

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

Ez a minta csak azokat a projekteket tartalmazza, amelyek vitest.config fájljának neve a kiterjesztés előtt tartalmazza az e2e vagy unit szavakat.

WARNING

Ha glob mintával hivatkozol fájlnevekre, győződj meg róla, hogy a konfigurációs fájlod neve vite.config-gal vagy vitest.config-gal kezdődik. Ellenkező esetben a Vitest figyelmen kívül hagyja.

Inline konfigurációval is definiálhatsz projekteket. A munkaterület fájl egyszerre támogatja mindkét szintaxist.

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

// A `defineWorkspace` egy jó típusozási élményt (DX) biztosít.
export default defineWorkspace([
  'packages/*',
  {
    // az "extends" segítségével két konfigurációt vonhatsz össze
    extends: './vite.config.js',
    test: {
      include: ['tests/**/*.{browser}.test.{ts,js}'],
      // inline konfigurációk használatakor ajánlott nevet megadni
      name: 'happy-dom',
      environment: 'happy-dom',
    },
  },
  {
    test: {
      include: ['tests/**/*.{node}.test.{ts,js}'],
      name: 'node',
      environment: 'node',
    },
  },
]);

WARNING

Minden projektnek egyedi névvel kell rendelkeznie. Ellenkező esetben a Vitest hibát fog dobni. Ha nem adsz meg nevet az inline konfigurációban, a Vitest automatikusan hozzárendel egy számot. Ha nem adsz meg nevet egy glob szintaxissal definiált projekt konfigurációban, a Vitest alapértelmezés szerint a könyvtárnevet fogja használni.

Ha nem használsz inline konfigurációkat, létrehozhatsz egy kis json fájlt a gyökérkönyvtáradban:

json
["packages/*"]

A munkaterület projektek nem támogatják az összes konfigurációs beállítást. A jobb típusbiztonság érdekében a projekt konfigurációs fájljaiban a defineConfig helyett a defineProject metódust használd:

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

export default defineProject({
  test: {
    environment: 'jsdom',
    // a "reporters" nem támogatott egy projekt konfigurációban,
    // tehát hibát fog jelezni
    reporters: ['json'],
  },
});

Konfiguráció ​

Egyetlen konfigurációs beállítás sem öröklődik a gyökérszintű konfigurációs fájlból. Létrehozhatsz egy közös konfigurációs fájlt, és egyesítheted a projekt konfigurációjával:

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

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

Ezen kívül néhány konfigurációs opció nem engedélyezett egy projekt konfigurációban. Leginkább:

  • coverage: a lefedettség az egész munkaterületre vonatkozik
  • reporters: csak a gyökérszintű riporterek támogatottak
  • resolveSnapshotPath: csak a gyökérszintű feloldó kerül figyelembe vételre
  • minden más opció, amely nem befolyásolja a teszt futtatókat

TIP

Minden olyan konfigurációs opció, amely nem támogatott egy projekt konfigurációban, * jellel van ellátva a "Config" oldalon.

Lefedettség ​

A munkaterület projektek lefedettsége azonnal használható. De ha az all opció engedélyezve van, és néhány projektedben nem szabványos kiterjesztéseket használsz, akkor szükséged lesz egy pluginra, amely kezeli ezeket a kiterjesztéseket a gyökér konfigurációs fájlodban.

Például, ha van egy csomagod, amely Vue fájlokat használ, és saját konfigurációs fájllal rendelkezik, de a tesztjeidben néhány fájl nincs importálva, akkor a lefedettség hibát fog adni, amikor megpróbálja elemezni a nem használt fájlok felhasználását, mivel a gyökérszintű konfigurációra támaszkodik, nem pedig a projekt konfigurációjára.

Pager
Előző oldalFunkciók
Következő oldalParancssori felület

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors

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

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors