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

Tesztkörnyezet ​

A Vitest az environment opciót biztosítja a kód adott környezetben történő futtatásához. Az environmentOptions opcióval finomhangolhatod a környezet viselkedését.

Alapértelmezés szerint a következő környezetek állnak rendelkezésre:

  • node: az alapértelmezett környezet.
  • jsdom: böngésző API-kat biztosítva emulálja a böngészőkörnyezetet a jsdom csomag használatával.
  • happy-dom: szintén böngésző API-kat biztosítva emulálja a böngészőkörnyezetet. A jsdom-nál gyorsabbnak tartják, de bizonyos API-k hiányozhatnak belőle. A happy-dom csomagot használja.
  • edge-runtime: a Vercel edge-runtime környezetét emulálja a @edge-runtime/vm csomag használatával.

Környezetek meghatározott fájlokhoz ​

Ha az environment opciót a konfigurációs fájlban állítod be, az a projekt összes tesztfájljára vonatkozik. Azonban részletesebb szabályozás érdekében vezérlő megjegyzésekkel adhatod meg az egyes fájlokhoz tartozó környezetet. A vezérlő megjegyzések @vitest-environment előtaggal kezdődnek, amelyet a környezet neve követ:

ts
// @vitest-environment jsdom

import { expect, test } from 'vitest';

test('test', () => {
  expect(typeof window).not.toBe('undefined');
});

Alternatív megoldásként beállíthatod az environmentMatchGlobs opciót is, amely glob minták alapján határozza meg a környezetet.

Egyéni környezet ​

A 0.23.0 verziótól kezdve létrehozhatsz saját csomagot a Vitest környezetének bővítéséhez. Ehhez hozz létre egy vitest-environment-${name} nevű csomagot, vagy adj meg egy érvényes JS fájl elérési útját (a 0.34.0 verzió óta támogatott). A csomagnak egy Environment típusú objektumot kell exportálnia:

ts
import type { Environment } from 'vitest';

export default <Environment>{
  name: 'custom',
  transformMode: 'ssr',
  // opcionális - csak akkor, ha támogatja az "experimental-vm" pool-t
  async setupVM() {
    const vm = await import('node:vm');
    const context = vm.createContext();
    return {
      getVmContext() {
        return context;
      },
      teardown() {
        // akkor hívódik meg, miután az összes teszt ebben a környezetben lefutott
      },
    };
  },
  setup() {
    // egyéni beállítás
    return {
      teardown() {
        // akkor hívódik meg, miután az összes teszt ebben a környezetben lefutott
      },
    };
  },
};

WARNING

A 0.34.0-ás verziótól kezdve a Vitest megköveteli a transformMode opció megadását a környezeti objektumban. Értéke ssr vagy web lehet. Ez az érték határozza meg, hogy a bővítmények hogyan transzformálják a forráskódot. Ha ssr-re van állítva, a bővítmények ssr: true értéket kapnak a fájlok transzformálásakor vagy feloldásakor. Ellenkező esetben az ssr értéke false.

A Vitest alapértelmezett környezeteihez a vitest/environments modulon keresztül is hozzáférhetsz:

ts
import { builtinEnvironments, populateGlobal } from 'vitest/environments';

console.log(builtinEnvironments); // { jsdom, happy-dom, node, edge-runtime }

A Vitest a populateGlobal segédfüggvényt is biztosítja, amellyel tulajdonságokat helyezhetsz át egy objektumból a globális névtérbe.

ts
interface PopulateOptions {
  // a nem osztályfüggvényeket a globális névtérhez kell kötniük
  bindFunctions?: boolean;
}

interface PopulateResult {
  // az összes másolt kulcs listája, még akkor is, ha az érték nem létezik az eredeti objektumban
  keys: Set<string>;
  // az eredeti objektum egy térképe, amelyet kulcsokkal felülírhattak
  // ezeket az értékeket a `teardown` függvényben adhatja vissza
  originals: Map<string | symbol, any>;
}

export function populateGlobal(
  global: any,
  original: any,
  options: PopulateOptions
): PopulateResult;
Pager
Előző oldalTesztkörnyezet
Következő oldalEgyezésvizsgálók kiterjesztése

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/environment

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors