Skip to content
Vitest 3
Main Navigation Průvodce & APIKonfiguraceRežim prohlížečePokročilé API
3.2.0
2.1.9
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

Úvod

Proč Vitest

Začínáme

Funkce

Konfigurace Vitestu

API

Testovací reference API

Mockovací funkce

Vi

expect

expectTypeOf

assert

assertType

Průvodce

Rozhraní příkazového řádku

Filtrování testů

Testovací projekty

Generátory zpráv

Pokrytí kódu

Snímky

Mockování

Paralelní zpracování

Typové testování

Vitest UI

Testování přímo ve zdrojovém kódu

Testovací kontext

Anotace testů

Testovací prostředí

Rozšíření matcherů

Integrace s IDE

Ladění

Běžné chyby

Průvodce migrací

Migrace na Vitest 3.0

Migrace z Jest

Výkon

Profilování výkonu testů

Zlepšení výkonu

Režim prohlížeče

Rozšířené API

Srovnání

Na této stránce

Paralelní zpracování ​

Paralelní zpracování souborů ​

Vitest ve výchozím nastavení spouští testovací soubory paralelně. V závislosti na zvoleném pool používá Vitest pro paralelní zpracování testovacích souborů různé mechanismy:

  • forks (výchozí) a vmForks spouštějí testy v různých dětských procesech.
  • threads a vmThreads spouštějí testy v různých pracovních vláknech.

Jak "dětské procesy", tak "pracovní vlákna" jsou označovány jako "pracovní jednotky" (workers). Počet běžících pracovních jednotek můžete konfigurovat pomocí možností minWorkers a maxWorkers. Detailnější konfiguraci pak naleznete v poolOptions.

Pokud máte mnoho testů, je obvykle rychlejší je spouštět paralelně, ale záleží to také na projektu, prostředí a stavu izolace. Chcete-li zakázat paralelizaci souborů, můžete nastavit fileParallelism na false. Chcete-li se dozvědět více o možných zlepšeních výkonu, přečtěte si Průvodce výkonem.

Paralelismus testů ​

Na rozdíl od testovacích souborů spouští Vitest testy sekvenčně. To znamená, že testy uvnitř jednoho testovacího souboru se spustí v pořadí, v jakém jsou definovány.

Vitest podporuje možnost concurrent pro souběžné spouštění testů. Pokud je tato možnost nastavena, Vitest seskupí souběžné testy ve stejném souboru (počet současně spuštěných testů závisí na možnosti maxConcurrency) a spustí je pomocí Promise.all.

Vitest neprovádí žádnou inteligentní analýzu a nevytváří další pracovní jednotky pro spouštění těchto testů. To znamená, že výkon vašich testů se zlepší pouze v případě, že se silně spoléháte na asynchronní operace. Například tyto testy se budou stále spouštět jeden po druhém, i když je zadána možnost concurrent. Je to proto, že jsou synchronní:

ts
test.concurrent('the first test', () => {
  expect(1).toBe(1);
});

test.concurrent('the second test', () => {
  expect(2).toBe(2);
});

Pokud chcete spouštět všechny testy souběžně, můžete nastavit možnost sequence.concurrent na true.

Pager
Předchozí stránkaMockování
Další stránkaTypové testování

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/parallelism

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team