vitest README

The project's README from github.com/vitest-dev/vitest. As one markdown file: README.md.



Vitest logo


Vitest

Next generation testing framework powered by Vite.

current vitest version badge

Get involved!

Documentation | Getting Started | Examples | Why Vitest?

中文文档



Features

Vitest requires Vite >=v6.4.0 and Node >=v22.12.0

import { assert, describe, expect, it } from 'vitest'

describe('suite name', () => {
  it('foo', () => {
    expect(1 + 1).toEqual(2)
    expect(true).to.be.true
  })

  it('bar', () => {
    assert.equal(Math.sqrt(4), 2)
  })

  it('snapshot', () => {
    expect({ foo: 'bar' }).toMatchSnapshot()
  })
})
$ npx vitest

Sponsors

vitest's sponsors

Credits

Thanks to:

Contribution

See Contributing Guide.

License

MIT License © 2021-Present VoidZero Inc. and Vitest contributors

vitest (vitest-dev/vitest)

Searching Database…

17.3K ·GitHub
Что это такое?Vitest — это тестовый фреймворк нового поколения для JavaScript и TypeScript, работающий на базе Vite. Он запускает модульные и компонентные тесты, используя вашу существующую настройку Vite.
Vitest — это фреймворк или библиотека, и как он связан с Jest?Это полноценный тестовый фреймворк, построенный на Vite: он переиспользует конфиг Vite, его трансформеры, резолверы и плагины, а также предлагает Jest-совместимый API (expect, мокирование, spies, снапшоты), так что переход будет привычным.
Как подключить его в своём проекте?Установите его как dev-зависимость (npm install -D vitest) и запускайте через CLI-команду 'vitest'. Он изначально рассчитан на ESM и подхватывает существующий конфиг и плагины vite вашего приложения, поэтому большинству проектов отдельная тестовая конфигурация не нужна.
Нужно ли что-то предварительно установить?Да — в проекте нужен Node >=v22.12.0 (22.12, 24 или 26+) и Vite >=v6.4.0. Больше ничего обязательного нет; браузер задействуется, только если вы сами включите Browser Mode.
На что обратить внимание, если я перехожу с Jest или со старой настройки?Главный нюанс — минимальные версии: проекты на старых Node или Vite сначала нужно обновить. Сама миграция с Jest простая, потому что expect API, мокирование, стабы, spies и снапшоты совместимы.
Что он умеет, кроме запуска модульных тестов?Он считает покрытие нативного кода через v8 или istanbul, запускает бенчмарки с помощью Tinybench, умеет тестировать типы через expect-type и поддерживает шардирование, чтобы распределить прогон по нескольким машинам.
Он может тестировать компоненты Vue, React или Svelte?Да — тестирование компонентов Vue, React, Svelte, Lit и Marko работает из коробки, плюс есть Browser Mode, который запускает тесты прямо в браузере. В Node он может замокать DOM и браузерные API через JSDOM или happy-dom.
Почему его называют быстрым?Watch mode работает как HMR в Vite: умно и мгновенно — при правках перезапускается только затронутое, а не весь набор тестов. Тесты к тому же могут выполняться параллельно и фильтроваться.
Мне нужно отдельно настраивать поддержку TypeScript, JSX или ESM?Нет — TypeScript и JSX работают из коробки, а Vitest изначально заточен под ESM, включая нативную поддержку top-level await.
Creator
vitest-dev
Size
72.5 MB
Stars
17.3K
Age
4y
Commits · 90 Days