vitest

Мощная среда модульного тестирования Vitest на базе Vite с API, совместимым с Jest. Используйте для написания тестов, создания моков, настройки покрытия, фильтрации тестов и фикстур.

iwyfaf-ai-skills/testing8 installsMITSynced Aug 22

Works with

Claude CodeCursorCodex CLIGitHub CopilotGemini CLI
---
name: vitest
description: Мощная среда модульного тестирования Vitest на базе Vite с API, совместимым с Jest. Используйте для написания тестов, создания моков, настройки покрытия, фильтрации тестов и фикстур.
license: MIT
---

Vitest — это современная среда тестирования следующего поколения, созданная на основе Vite.
Она предоставляет API, совместимый с Jest, с нативной поддержкой ESM, TypeScript и JSX «из коробки».
Vitest использует ту же конфигурацию, трансформеры, резолверы и плагины, что и ваше Vite-приложение.

**Ключевые особенности:**

- Нативная интеграция с Vite: использует конвейер преобразований Vite для быстрых обновлений тестов
  в стиле HMR.
- Совместимость с Jest: может стать заменой большинства тестовых наборов Jest.
- Умный режим наблюдения: перезапускает только затронутые тесты на основе графа модулей.
- Нативная поддержка ESM, TypeScript, JSX без дополнительной настройки.
- Многопоточные рабочие процессы для параллельного выполнения тестов.
- Встроенный сбор покрытия через V8 или Istanbul.
- Тестирование снимков (snapshots), создание моков и шпионов (spies).

> Этот навык основан на Vitest 4.x (актуальная версия — 4.1.5), обновлён 2026-04-29.

## Требования Vitest 4.x

- Vite ≥ 6.0.0
- Node.js ≥ 20.0.0

## Ключевые изменения по сравнению с Vitest 3.x

- **Архитектура пула:** `maxThreads`/`maxForks` → `maxWorkers`; `singleThread`/`singleFork` → `maxWorkers: 1, isolate: false`. Pool переписан без tinypool.
- **Покрытие:** удалены `coverage.all` и `coverage.extensions`; по умолчанию учитываются только покрытые файлы (если не указан `coverage.include`); удалены `coverage.ignoreEmptyLines` и `coverage.experimentalAstAwareRemapping`.
- **Проекты:** опция `workspace` переименована в `projects`; внешние файлы больше не поддерживаются.
- **Моки:** `vi.spyOn` и `vi.fn` теперь поддерживают конструкторы; стрелочные функции выбрасывают ошибку при вызове через `new`. `vi.fn()` возвращает `[MockFunction]` вместо `[MockFunction spy]`.
- **Module Runner:** заменил `vite-node`; точка входа `vitest/execute` удалена.
- **Browser Mode:** провайдер принимает объекты, а не строки; пакет `@vitest/browser` больше не нужен.
- **Снимки:** custom-элементы по умолчанию выводят shadow root (отключается через `printShadowRoot: false`).
- **Excludes по умолчанию:** упрощены до `node_modules` и `.git`; для производительности используйте `test.dir`.
- **API репортеров:** удалены `onCollected`, `onSpecsCollected`, `onPathsCollected`, `onTaskUpdate`, `onFinished`.
- **Удалённые устаревшие опции:** `poolMatchGlobs`, `environmentMatchGlobs`, `deps.external` и другие.

## Новое в Vitest 4.x

- **Хуки `aroundEach`/`aroundAll`** — расширенное управление жизненным циклом.
- **Теги тестов** — фильтрация через `--tags`.
- **`test.extend`** с улучшенным выводом типов.
- **`coverage.changed`** — отчёт только по изменённым файлам.
- **Флаг `--detect-async-leaks`** — обнаружение утечек ресурсов.
- **Browser Mode:** persistent context, screenshot-артефакты.
- **Снимки:** опции `--update=new` и `--update=all`.
- **Fake timers:** обновлены до sinon v15, опция `setTickMode`.

## Основное

| Тема         | Описание                                                          | Ссылка                                       |
|--------------|-------------------------------------------------------------------|----------------------------------------------|
| Конфигурация | Интеграция конфигураций Vitest и Vite, использование defineConfig | [core-config](references/core-config.md)     |
| CLI          | Интерфейс командной строки, команды и опции                       | [core-cli](references/core-cli.md)           |
| Test API     | Функции test/it, модификаторы skip, only, concurrent              | [core-test-api](references/core-test-api.md) |
| Describe API | describe/suite для группировки тестов и вложенных наборов         | [core-describe](references/core-describe.md) |
| Expect API   | Утверждения с toBe, toEqual, матчеры и асимметричные матчеры      | [core-expect](references/core-expect.md)     |
| Хуки         | beforeEach, afterEach, beforeAll, afterAll, aroundEach, aroundAll | [core-hooks](references/core-hooks.md)       |

## Возможности

| Тема               | Описание                                                                 | Ссылка                                                     |
|--------------------|--------------------------------------------------------------------------|------------------------------------------------------------|
| Создание моков     | Мок-функции, модули, таймеры, даты с помощью утилит vi                   | [features-mocking](references/features-mocking.md)         |
| Снимки (Snapshots) | Тестирование снимками с toMatchSnapshot и встроенными снимками           | [features-snapshots](references/features-snapshots.md)     |
| Покрытие кода      | Сбор покрытия кода с помощью провайдеров V8 или Istanbul                 | [features-coverage](references/features-coverage.md)       |
| Контекст теста     | Фикстуры теста, context.expect, test.extend для пользовательских фикстур | [features-context](references/features-context.md)         |
| Конкурентность     | Конкурентные тесты, параллельное выполнение, шардинг                     | [features-concurrency](references/features-concurrency.md) |
| Фильтрация         | Фильтрация тестов по имени, шаблонам файлов, тегам                       | [features-filtering](references/features-filtering.md)     |

## Продвинутые темы

| Тема               | Описание                                                                        | Ссылка                                                       |
|--------------------|---------------------------------------------------------------------------------|--------------------------------------------------------------|
| Утилиты Vi         | Вспомогательная функция vi: mock, spyOn, фейковые таймеры, hoisted, waitFor     | [advanced-vi](references/advanced-vi.md)                     |
| Окружения          | Тестовые окружения: node, jsdom, happy-dom, пользовательское                    | [advanced-environments](references/advanced-environments.md) |
| Тестирование типов | Тестирование на уровне типов с expectTypeOf и assertType                        | [advanced-type-testing](references/advanced-type-testing.md) |
| Проекты            | Многопроектное рабочее пространство, различные конфигурации для каждого проекта | [advanced-projects](references/advanced-projects.md)         |

More Testing skills

← All Testing skills

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY