← Back to all sparks
V

Vitest

DEVOPS
Velocity5.0

Blazing-fast unit test framework powered by Vite

Vitest 5 is in bug-fix mode: the second RC is almost entirely hardening

testingbrowser-moderelease-candidatestabilitytooling
Current state
rc.2 carries one feature — a custom title for the GitHub Actions summary — and otherwise fixes the failure modes the RC period surfaced. The browser mode gets most of it: failing instead of hanging when the browser stops responding, exiting cleanly on disconnect during cancellation, and triggering Chromium GC when disk runs low. Snapshot evaluation moved server-side to work under a no-unsafe-eval CSP, and the UI now requires auth for coverage reports and every subtree request.
Where it's heading
The v5 line has spent four betas and two candidates reshaping config resolution, projects, mocking defaults, and the benchmark API; this candidate adds nothing to that surface and only stabilizes it. The concentration of browser-mode and pool fixes says that is where the remaining risk sits, and where real-world RC adoption is finding edges.
Prediction
On this trajectory the next tag is either a final 5.0.0 or one more candidate, with browser mode the deciding factor rather than any remaining API work.

Recent moves

  1. 1d ago

    Vitest 5 rc.2: browser mode stops hanging, snapshots work under strict CSP

    A hardening candidate rather than a feature one. The v5 API surface is settled and the work has moved to browser-mode failure handling, worker exit reporting, and running snapshots under a no-unsafe-eval CSP.

    View source ↗
  2. 7d ago

    Vitest 5 RC: nested projects, shared Vite server, unawaited assertions fail

    The first candidate, which brought nested projects, a shared Vite server, and unawaited assertions becoming failures — the last cut that changed the v5 surface.

    View source ↗
  3. 25d ago

    Vitest 5 beta.7: config resolution split out, pluggable benchmark providers

    Beta 7 split config resolution into its own step and made benchmark providers pluggable, part of the structural work v5 is built on.

    View source ↗
  4. 1mo ago

    Vitest 5 beta.6: mocks clear by default, webdriverio removed, vi.when() added

    Beta 6 flipped mocks to clear by default, dropped webdriverio, and added vi.when() — one of the breaking-default cuts of this cycle.

    View source ↗
  5. 2mo ago

    Vitest 5 beta.5: no ancestor config lookup, @vitest/runner inlined

    Beta 5 removed ancestor config lookup and inlined @vitest/runner, continuing the config and packaging cleanup.

    View source ↗
  6. 2mo ago

    Vitest 5 beta.4: benchmark API rewritten, strict hoisting and locators

    Beta 4 rewrote the benchmark API and tightened hoisting and locators, opening the run of breaking changes v5 is built around.

    View source ↗