Vitest

Developer ToolsMIT

A Vite-native testing framework.

Latest v5.0.0 · by VoidZeroWritten in TypeScriptWebsitevitest-dev/vitestRSS

Branches

5.0
v5.0.0
4.1
v4.1.11
3.2
v3.2.7

Release activity

Release activity — 16 releases across 11 days since Jun 1, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jun 1, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
Monday4 releases on Jun 1, 2026No releases on Jun 8, 20261 release on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 20263 releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 20261 release on Aug 17, 2026No releases on Aug 24, 20261 release on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on Jun 2, 2026No releases on Jun 9, 20261 release on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 20261 release on Aug 11, 20261 release on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 20261 release on Sep 3, 2026
FridayNo releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 20261 release on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 20261 release on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

16 releases since Jun 1, 2026, busiest day 4

Changelog

What changed from 4 to 5
Filter releases by branch
16 of 16 releases

v5.0.0

Latest
Added 1
  • Add screenshotDirectory config to browser.expect.toMatchScreenshot
Changed 15
  • Replace loupe.inspect with pretty-format
  • Remove quotes from string values in test.for/each title $ variable
  • Change default attachmentsDir from .vitest-attachements/ to .vitest/attachments/
  • Represent locator as an object instead of a string
  • Inline expect package
  • Require Node.js 22 and Vite 6.4
Removed 4
  • Remove sequential test/suite options in favor of concurrent
  • Remove deprecated entry points
  • Inline @vitest/runner package and do not publish it anymore
  • Remove webdriverio package

From Vitest

Vitest 5 is officially out! This release focuses on performance and brings a lot of new features while fixing long-standing bugs. See our blog post for the official announcement.

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub
View originalPermalink
How v5.0.0 went

v5.0.0-rc.4

Pre-release
Added 2
  • Promote clearCache out of experimental
  • Add link to open playwright trace in UI
Changed 2
  • Parse files statically in vitest list by default
  • Lazily format spy matcher failures in expect
Fixed 5
  • Don't duplicate oxc.target if user provides a custom array
  • Propagate --maxWorkers to projects
  • Report the action error when a task times out in browser
  • Add suite level report view in UI
  • Link module graphs one at a time in VM

From Vitest

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub
View originalPermalink
How v5.0.0-rc.4 went

v5.0.0-rc.3

Pre-release
Added 5
  • Promote parseSpecifications out of experimental
  • Highlight editor source locations in UI
  • Navigate trace steps with keyboard and remove indirect editor focus in UI
  • Persist trace view selection in URL in UI
  • Toggle trace target highlight in UI
Changed 1
  • Switch coverage to @vitest/istanbuljs packages
Fixed 14
  • Combine multiple --project filters correctly
  • Fix recordArtifact location with vi.defineHelper
  • Invalidate resolved setup files
  • Accept awaited value in vi.when thenResolve
  • Ignore computed member calls in static collection
  • Don't hang when ui: true in projects for browser

From Vitest

   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub
View originalPermalink
How v5.0.0-rc.3 went

v4.1.11

Fixed 4
  • Revive global concurrency limit for test lifecycle
  • Encode iframeId in tester iframe URL
  • Trigger playwright/chromium gc on lower disk availability
  • Restrict redirect mocks to the fs allowlist

From Vitest

   🐞 Bug Fixes
    View changes on GitHub
View originalPermalink
How v4.1.11 went

v5.0.0-rc.2

Pre-release
Added 1
  • Add custom GitHub Actions summary title to reporter
Changed 1
  • Update all non-major dependencies
Fixed 17
  • Revive global concurrency limit for test lifecycle
  • Own the post-restart rerun, keep process.exit disabled in workers
  • Preserve correct root during resolve config
  • Trigger playwright/chromium gc on lower disk availability
  • Disallow filter-only options in getBy* locators
  • Fail instead of hanging when the browser stops responding
Security 1
  • Require auth for coverage report and all UI subtree requests

From Vitest

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub
View originalPermalink
How v5.0.0-rc.2 went

v5.0.0-rc.1

Pre-release
Added 4
  • Support nested projects
  • Report the duration breakdown as percentages
  • Support -p shorthand for --project in CLI
  • Support require(esm) in vm pools
Changed 8
  • Inline projects extend the root config by default
  • Enable mocking Temporal without fake timers
  • Use > as separator in -t and calculate only once
  • Fail the test when an asynchronous assertion is not awaited
  • Share the Vite server between inline projects
  • Save failure screenshots in attachmentsDir in browser mode
  • Preserve class mock prototype methods on instances in spy
  • Add better promise support in expects and matchers in types
Fixed 8
  • Coalesce concurrent watch-mode restarts
  • Prevent vitest --typecheck from reporting false success when tsc process crashes
  • Collect in-source tests when the module is cached
  • Swap replace() arguments so timeout error stack shows the real message
  • Fix stale mock metadata breaking automocking with isolate:false
  • Don't lose worker output on teardown
  • Ignore channel events in a tester opened as a top-level window in browser mode
  • Resolve connectTimeout from the project config in browser mode

From Vitest

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub
View originalPermalink
How v5.0.0-rc.1 went

v5.0.0-beta.7

Pre-release
Added 4
  • Add toggable injectCjsGlobals option
  • Promote fsModuleCache to a top-level option
  • Support non-ascii characters in for/each title placeholders
  • Add pluggable benchmark provider API
Changed 4
  • Separate config resolution from the server creation
  • Serve warm modules to workers in one round-trip and enable the node compile cache
  • Make the Node compile cache opt-in and persist worker caches on teardown
  • Reuse compiled code across vm pool contexts and prewarm the module graph
Fixed 12
  • Disable server HMR before plugins read it in their config hook
  • Close the pool before the Vite servers
  • Remove listeners in the typecheck worker's off
  • Keep per-file isolation in vm pools when maxWorkers is 1
  • Prevent node builtins double prefix
  • Set non-zero exit code when teardown throws during close

From Vitest

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub
View originalPermalink
How v5.0.0-beta.7 went

v5.0.0-beta.6

Pre-release
Added 1
  • Create vi.when() for conditional mocking
Changed 5
  • Add screenshotDirectory config to browser.expect.toMatchScreenshot
  • Update @sinonjs/fake-timers and support mocking Temporal
  • Write json and junit reporter output files to .vitest by default
  • Change html reporter default output to .vitest
  • Harden UI API access
Fixed 12
  • Fix setImmediate await in detect-async-leak
  • Fix per-project sequence config
  • Add handshake timeout to iframe communication
  • Don't print column in test names when includeTaskLocation is enabled
  • Always derive a positive locator action timeout in browser
  • Resize the browser ui only if it's not headless
Removed 2
  • Remove webdriverio package
  • Clear mocks by default before each test

From Vitest

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub
View originalPermalink
How v5.0.0-beta.6 went

v4.1.10

Fixed 2
  • Check fs access in builtin commands for browser
  • Fix external module resolve error with deps optimizer query for encoded URI in vm

From Vitest

   🐞 Bug Fixes
    View changes on GitHub
View originalPermalink
How v4.1.10 went

v4.1.9

Fixed 5
  • Fix importOriginal with optimizer and query import
  • Wait for orchestrator readiness before resolving browser sessions
  • Wait for iframe tester readiness before preparing
  • Hoist vi.mock() for vite-plus/test imports
  • Prevent test run hang on worker crash

From Vitest

🐞 Bug Fixes
View changes on GitHub
View originalPermalink
How v4.1.9 went

v5.0.0-beta.5

Pre-release
Added 3
  • Display nested mark trace in UI in browser mode
  • Add --repeats CLI option
  • Allow thresholds.autoUpdate to receive previous threshold as argument in coverage
Changed 4
  • Allow mutating happy-dom/jsdom window object
  • Expose concurrencyId/workerId on TestModule's diagnostics, make id 1-based
  • Require sessionId for orchestrator html request in browser mode
  • Allow thresholds.perFile to accept an object in coverage
Fixed 10
  • Fix mixed stdout/stderr log timestamps in onUserConsoleLog
  • Fix importOriginal with optimizer and query import
  • Correct transform time calculation in merged report
  • Wait for orchestrator readiness before resolving browser sessions
  • Wait for iframe tester readiness before preparing
  • Encode iframeId in tester iframe URL
Removed 2
  • Don't lookup config file from ancestor directories
  • Inline @vitest/runner package, do not publish it anymore

From Vitest

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub
View originalPermalink
How v5.0.0-beta.5 went

v3.2.6

Fixed 1
  • Pin last supported vite-node version

From Vitest

   🐞 Bug Fixes
  • Pin last supported vite-node version  -  by @sheremet-va (16f12)
    View changes on GitHub
View originalPermalink
How v3.2.6 went

v5.0.0-beta.4

Pre-release
Added 2
  • Show trace view steps in editor panel in browser mode
  • Support html reporter single file output
Changed 4
  • toHaveTextContent is strict, add toMatchTextContent as alternative
  • Rewrite the benchmark public API
  • Enable locators.exact by default in browser mode
  • Improve performance in hot paths
Fixed 13
  • Preserve vi.defineHelper callsite for async error stack
  • Respect disableConsoleIntercept in browser mode
  • ForceRerunTriggers uses directory globs against files
  • Unify typechecking and ast collection
  • Don't print typecheck warning more than once
  • Correct column when parsing tests
Removed 1
  • Throw an error if hoistable methods are outside the top level scope

From Vitest

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub
View originalPermalink
How v5.0.0-beta.4 went

v3.2.5

Added 1
  • Add `allowWrite` and `allowExec` options to api
Fixed 1
  • Disable client `cdp` API when `allowWrite/allowExec: false`

From Vitest

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub
View originalPermalink
How v3.2.5 went

v4.1.8

Fixed 2
  • Disable client cdp API when allowWrite/allowExec: false in browser
  • Remove orphaned Playwright route when same module is mocked via multiple ids

From Vitest

   🐞 Bug Fixes
    View changes on GitHub
View originalPermalink
How v4.1.8 went
View all

Discussion

If you publish Vitest, you can claim this product by proving you administer its repository.