Skip to content
Vitest 3
Main Navigation Руководство & APIКонфигурацияРежим браузераРасширенный API
3.2.0
2.1.9
1.6.1
0.34.6

Русский

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
magyar

Внешний вид

Sidebar Navigation

Введение

Почему Vitest

Начало работы

Возможности

Настройка Vitest

API

Справочник по API тестирования

Мок-функции

Vi

expect

expectTypeOf

assert

assertType

Руководство

Интерфейс командной строки

Фильтрация тестов

Тестовые проекты

Средства отчётности

Покрытие кода

Снапшот-тестирование

Мокирование

Параллелизм

Тестирование типов

Vitest UI

Тестирование в исходном коде

Контекст теста

Аннотации тестов

Среда тестирования

Расширение матчеров

Интеграции с IDE

Отладка

Распространенные ошибки

Руководство по миграции

Миграция на Vitest 3.0

Миграция с Jest

Производительность

Профилирование производительности тестов

Улучшение производительности

Режим браузера

Расширенный API

Сравнение с другими тестовыми раннерами

Содержание страницы

Параллелизм ​

Параллельное выполнение файлов ​

По умолчанию Vitest запускает тестовые файлы параллельно. В зависимости от указанного pool, Vitest использует различные механизмы для параллельного выполнения тестовых файлов:

  • forks (по умолчанию) и vmForks запускают тесты в отдельных дочерних процессах.
  • threads и vmThreads запускают тесты в отдельных рабочих потоках.

Как "дочерние процессы", так и "рабочие потоки" называются воркерами. Вы можете настроить количество запущенных воркеров с помощью опций minWorkers и maxWorkers. Более тонкая настройка доступна через конфигурацию poolOptions.

При наличии большого количества тестов их параллельный запуск обычно ускоряет выполнение, но это также зависит от проекта, окружения и состояния изоляции. Чтобы отключить параллелизацию файлов, вы можете установить для fileParallelism значение false. Для получения дополнительной информации о возможных улучшениях производительности ознакомьтесь с Руководством по оптимизации производительности.

Параллелизм тестов ​

В отличие от тестовых файлов, Vitest запускает тесты последовательно. Это означает, что тесты в одном файле будут выполняться в порядке их определения.

Vitest поддерживает опцию concurrent для параллельного запуска тестов. Если эта опция установлена, Vitest объединяет параллельные тесты в одном тестовом файле (количество одновременно выполняемых тестов зависит от опции maxConcurrency) и запускает их с помощью Promise.all.

Vitest не выполняет интеллектуального анализа и не создает дополнительных воркеров для запуска этих тестов. Это означает, что производительность ваших тестов улучшится только в том случае, если вы активно используете асинхронные операции. Например, следующие тесты все равно будут запускаться один за другим, даже если указана опция concurrent, из-за их синхронной природы:

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

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

Если вы хотите запустить все тесты параллельно, вы можете установить опцию sequence.concurrent в true.

Pager
Предыдущая страницаМокирование
Следующая страницаТестирование типов

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team

https://vitest.dev/guide/parallelism

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team