Skip to content
Vitest 1
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

Reporterek

Lefedettség

Pillanatképek

Mockolás

Típusok tesztelése

Vitest UI

Böngésző mód

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

A teljesítmény javítása

API

Teszt API Dokumentáció

Mock függvények

Vi

expect

expectTypeOf

assert

assertType

Konfiguráció

A Vitest konfigurációs fájl beállítása

Vitest konfigurálása

Ezen az oldalon

Munkaterület ​

Minta Projekt

GitHub - Online Futtatás

A Vitest beépített támogatást nyújt a monorepo-khoz egy munkaterület konfigurációs fájlon keresztül. Létrehozhat munkaterületet a projektjei beállításainak definiálásához.

Munkaterület definiálása ​

Egy munkaterületnek rendelkeznie kell egy vitest.workspace vagy vitest.projects fájllal a gyökérmappájában (ugyanabban a mappában, mint a konfigurációs fájl, ha van ilyen). 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 packages nevű mappája, amely tartalmazza a projektjeit, akkor definiálhat egy munkaterületet ezzel a konfigurációs fájllal:

ts
export default ['packages/*'];

A Vitest minden mappát a packages mappában külön projektként kezel, még akkor is, ha nincs benne konfigurációs fájl.

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.

A projekteket a konfigurációs fájljaikra is hivatkozhatja:

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

Ez a minta csak azokat a projekteket tartalmazza, amelyek vitest.config fájlja tartalmazza az e2e vagy unit kifejezéseket a kiterjesztés előtt.

WARNING

Ha fájlnevekre glob mintával hivatkozik, győződjön meg arról, hogy a konfigurációs fájl neve vite.config vagy vitest.config -gal kezdődik. Ellenkező esetben a Vitest kihagyja azt.

A projekteket inline konfigurációval is definiálhatja. A munkaterület fájl támogatja a két szintaxis egyidejű használatát.

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

// A defineWorkspace szép típus-súgást biztosít (jó fejlesztői élményt)
export default defineWorkspace([
  'packages/*',
  {
    // az "extends" hozzáadásával két konfigurációt egyesíthetünk
    extends: './vite.config.js',
    test: {
      include: ['tests/**/*.{browser}.test.{ts,js}'],
      // ajánlott nevet megadni inline konfigurációk használatakor
      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 ad meg nevet az inline konfigurációban, a Vitest automatikusan generált nevet fog használni. Ha nem ad meg nevet egy glob szintaxissal definiált projekt konfigurációban, a Vitest alapértelmezés szerint a könyvtár nevét fogja használni.

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

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 használja a defineProject metódust a defineConfig helyett a projekt konfigurációs fájljaiban:

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

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

Tesztek futtatása ​

A tesztek futtatásához a munkaterületen belül definiáljon egy szkriptet a gyökér package.json fájljában:

json
{
  "scripts": {
    "test": "vitest"
  }
}

Most a tesztek futtathatók a csomagkezelő segítségével:

bash
npm run test
bash
yarn test
bash
pnpm run test
bash
bun test

Ha csak egyetlen projekten belül szeretne teszteket futtatni, használja a --project CLI opciót:

bash
npm run test --project e2e

TIP

A --project CLI opció többször is használható több projekt szűrésére:

bash
npm run test --project e2e --project unit

Konfiguráció ​

A konfigurációs beállítások egyike sem öröklődik a gyökérszintű konfigurációs fájlból. Létrehozhat egy megosztott konfigurációs fájlt, és egyesítheti azt 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 beállítás nem engedélyezett a projekt konfigurációban. Ezek főként a következők:

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

TIP

Minden konfigurációs beállítás, amely nem támogatott a projekt konfigurációban, * jellel van ellátva a "Config" oldalon.

Lefedettség (Coverage) ​

A munkaterület projektek lefedettsége azonnal működik. De ha az all opció engedélyezve van, és nem szokványos kiterjesztéseket használ néhány projektben, akkor szüksége lesz egy bővítményre, amely kezeli ezt a kiterjesztést a gyökér konfigurációs fájljában.

Például, ha van egy csomagja, amely Vue fájlokat használ, és saját konfigurációs fájlja van, de néhány fájl nincs importálva a tesztjeibe, a lefedettség vizsgálat sikertelen lesz, amikor megpróbálja elemezni a nem használt fájlok használatát, mert a gyökér 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://v1.vitest.dev/guide/workspace

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors