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

Workspace

Rozhraní příkazového řádku

Filtrování testů

Reportéři

Pokrytí

Snímky

Mockování

Testování typů

Vitest UI

Režim prohlížeče

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

Zvýšení výkonu

API

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

Mock funkce

Vi

expect

expectTypeOf

assert

assertType

Konfigurace

Správa konfiguračního souboru pro Vitest

Konfigurace Vitest

Na této stránce

Testovací prostředí ​

Vitest nabízí možnost environment pro spouštění kódu ve specifickém prostředí. Chování prostředí můžete upravit pomocí možnosti environmentOptions.

Ve výchozím nastavení můžete použít tato prostředí:

  • node je výchozí prostředí.
  • jsdom emuluje prostředí prohlížeče poskytováním API prohlížeče, používá balíček jsdom.
  • happy-dom emuluje prostředí prohlížeče poskytováním API prohlížeče a je považováno za rychlejší než jsdom, ale postrádá některé API, používá balíček happy-dom.
  • edge-runtime emuluje edge-runtime od Vercel, používá balíček @edge-runtime/vm.

Prostředí pro specifické soubory ​

Pokud nastavíte možnost environment ve vaší konfiguraci, bude se vztahovat na všechny testovací soubory ve vašem projektu. Pro jemnější kontrolu můžete použít řídicí komentáře k určení prostředí pro specifické soubory. Řídicí komentáře jsou komentáře, které začínají na @vitest-environment a následuje je název prostředí:

ts
// @vitest-environment jsdom

import { expect, test } from 'vitest';

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

Můžete také nastavit volbu environmentMatchGlobs určující prostředí na základě glob vzorů.

Vlastní prostředí ​

Počínaje verzí 0.23.0 si můžete vytvořit vlastní balíček pro rozšíření prostředí Vitest. Chcete-li to provést, vytvořte balíček s názvem vitest-environment-${name} nebo zadejte cestu k platnému JS souboru (podporováno od verze 0.34.0). Tento balíček by měl exportovat objekt ve formátu Environment:

ts
import type { Environment } from 'vitest';

export default <Environment>{
  name: 'custom',
  transformMode: 'ssr',
  // optional - only if you support "experimental-vm" pool
  async setupVM() {
    const vm = await import('node:vm');
    const context = vm.createContext();
    return {
      getVmContext() {
        return context;
      },
      teardown() {
        // called after all tests with this env have been run
      },
    };
  },
  setup() {
    // custom setup
    return {
      teardown() {
        // called after all tests with this env have been run
      },
    };
  },
};

WARNING

Od verze 0.34.0 vyžaduje Vitest volbu transformMode v objektu prostředí. Měla by být nastavena na ssr nebo web. Tato hodnota určuje, jak pluginy transformují zdrojový kód. Pokud je nastavena na ssr, pluginové háky obdrží ssr: true při transformaci nebo resolvování souborů. Jinak je ssr nastaveno na false.

K výchozím prostředím Vitest máte také přístup pomocí modulu vitest/environments:

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

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

Vitest také poskytuje utilitu populateGlobal, která umožňuje přesunout vlastnosti z objektu do globálního jmenného prostoru:

ts
interface PopulateOptions {
  // should non-class functions be bind to the global namespace
  bindFunctions?: boolean;
}

interface PopulateResult {
  // a list of all keys that were copied, even if value doesn't exist on original object
  keys: Set<string>;
  // a map of original object that might have been overridden with keys
  // můžete vrátit tyto hodnoty v rámci funkce `teardown`
  originals: Map<string | symbol, any>;
}

export function populateGlobal(
  global: any,
  original: any,
  options: PopulateOptions
): PopulateResult;
Pager
Předchozí stránkaKontext testu
Další stránkaRozšíření matcherů/porovnávačů

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors

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

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors