Skip to content
Vitest 2
Main Navigation ÚtmutatóAPIKonfigurációBöngésző módHaladó
2.1.9
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

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

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

Profiling Test Performance

A teljesítmény javítása

Ezen az oldalon

Munkaterület ​

Példa projekt

GitHub - Online futtatás

A Vitest lehetővé teszi több projektkonfiguráció definiálását egyetlen Vitest folyamaton belül. Ez a funkció különösen hasznos monorepo környezetekben, de használható tesztek futtatására különböző konfigurációkkal is, mint például resolve.alias, plugins, vagy test.browser és egyéb beállításokkal.

Munkaterület definiálása ​

Egy munkaterületnek tartalmaznia kell egy vitest.workspace vagy vitest.projects fájlt a gyökérkönyvtárában (ugyanabban a mappában, mint a gyökérkonfigurációs fájl, vagy a munkakönyvtárban, ha az nem létezik). A Vitest támogatja a ts, js és json kiterjesztéseket ehhez a fájlhoz.

ELNEVEZÉS

Kérjük, vegye figyelembe, hogy ezt a funkciót workspace-nek nevezik, nem workspaces-nek (az "s" nélkül a végén).

A munkaterület konfigurációs fájljának alapértelmezett exporttal kell rendelkeznie, amely a projektekre hivatkozó fájlok vagy glob minták listáját tartalmazza. 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 a packages mappában található minden mappát külön projektként fog kezelni, még akkor is, ha nincs benne konfigurációs fájl. A Vitest 2.1 óta, ha ez a glob minta bármilyen fájlra illeszkedik, az Vitest konfigurációnak számít, még akkor is, ha nincs vitest a nevében.

WARNING

A Vitest nem tekinti a gyökér vitest.config fájlt munkaterületi projektként, hacsak azt nem adták meg explicit módon a munkaterület konfigurációjában. Következésképpen a gyökérkonfiguráció csak a globális opciókat befolyásolja, például a reporters és a coverage beállításokat.

A projektekre a konfigurációs fájljaik segítségével is hivatkozhat:

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

Ez a minta csak azokat a projekteket fogja tartalmazni, amelyek vitest.config fájljának nevében e2e vagy unit szerepel a kiterjesztés előtt.

A projekteket soron belüli konfigurációval is definiálhatja. A munkaterület fájl mindkét szintaxist támogatja.

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

// a defineWorkspace kiváló típus-tippelési élményt biztosít a fejlesztők számára
export default defineWorkspace([
  // illeszkedik minden mappára és fájlra a `packages` mappán belül
  'packages/*',
  {
    // az "extends" segítségével két konfiguráció egyesíthető
    extends: './vite.config.js',
    test: {
      include: ['tests/**/*.{browser}.test.{ts,js}'],
      // ajánlott nevet megadni soron belüli 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 jelez. Ha a soron belüli konfigurációban nincs megadva név, a Vitest egy számot rendel hozzá. A glob szintaxissal definiált projektkonfigurációk esetén a Vitest alapértelmezés szerint a legközelebbi package.json fájl "name" tulajdonságát fogja használni, vagy ha az hiányzik, akkor a mappa nevét.

Ha nem használ soron belüli konfigurációkat, létrehozhat egy kis JSON fájlt a gyökérkönyvtárában:

json
["packages/*"]

A munkaterületi 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 projektkonfigurációs fájlokban:

ts
// @errors: 2769
import { defineProject } from 'vitest/config';

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

Tesztek futtatása ​

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

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

Mostantól a tesztek futtathatók a csomagkezelővel:

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

Ha csak egyetlen projektben kell teszteket futtatnia, használja a --project CLI opciót:

bash
npm run test --project e2e
bash
yarn test --project e2e
bash
pnpm run test --project e2e
bash
bun test --project e2e

TIP

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

bash
npm run test --project e2e --project unit
bash
yarn test --project e2e --project unit
bash
pnpm run test --project e2e --project unit
bash
bun test --project e2e --project unit

Konfiguráció ​

Egyetlen konfigurációs opció 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 projektkonfigurációval:

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

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

A defineWorkspace szintjén használhatja az extends opciót a gyökérszintű konfiguráció öröklésére. Minden opció egyesül.

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

export default defineWorkspace([
  {
    extends: './vitest.config.ts',
    test: {
      name: 'unit',
      include: ['**/*.unit.test.ts'],
    },
  },
  {
    extends: './vitest.config.ts',
    test: {
      name: 'integration',
      include: ['**/*.integration.test.ts'],
    },
  },
]);

Néhány konfigurációs opció nem engedélyezett egy projektkonfigurációban. A legfontosabb tiltott opciók:

  • coverage: a lefedettség az egész munkaterületre vonatkozik
  • reporters: csak a gyökérszintű riportolók támogatottak
  • resolveSnapshotPath: csak a gyökérszintű feloldó érvényes
  • minden egyéb opció, amely nem befolyásolja a tesztfuttatókat

TIP

Minden olyan konfigurációs opció, amely nem támogatott egy projektkonfiguráción belül, * jellel van megjelölve a "Konfiguráció" útmutatóban.

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

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors

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

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors