Vitest Release Notes
44 release notes curated from 6 sources by the Releasebot Team. Last updated: Jul 6, 2026
- Jul 6, 2026
- Date parsed from source:Jul 6, 2026
- First seen by Releasebot:Jul 6, 2026
v5.0.0-beta.6
Vitest releases a major update with new vi.when(), browser screenshot directory support, and safer defaults for mocks and report output. It also hardens UI and browser handling, improves coverage and worker reliability, and fixes several testing and type issues.
馃毃 Breaking Changes
Add screenshotDirectory config to browser.expect.toMatchScreenshot - by @macarie in #10592 (a60de)
Update @sinonjs/fake-timers and support mocking Temporal - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #10654 (f8b15)
Remove webdriverio package - by @sheremet-va in #10675 (5fed6)
Clear mocks by default before each test - by @sheremet-va in #10613 (0f646)
Don't emit localStorage warnings on Node 26, fail gracefully when worker fails to start - by @sheremet-va in #10293 (334ed)
reporters:
Write json and junit reporter output files to .vitest by default - by @hi-ogawa, Hiroshi Ogawa, OpenCode (claude-opus-4-8) and @AriPerkkio in #10621 (58577)
ui:
Harden UI API access - by @hi-ogawa, Hiroshi Ogawa and Codex in #10583 (4c26d)
Change html reporter default output to .vitest - by @hi-ogawa and Hiroshi Ogawa in #10620 (29c36)
馃殌 Features
vitest: Create vi.when() - by @macarie in #10174 (3900e)
馃悶 Bug Fixes
Fix setImmediate await in detect-async-leak - by @hi-ogawa and Hiroshi Ogawa in #10608 (dd62b)
Fix per-project sequence config - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #10659 (40cdc)
Add handshake timeout to iframe communication - by @sheremet-va in #10656 (3545f)
Don't print column in test names when includeTaskLocation is enabled - by @sheremet-va in #10681 (bd9cc)
browser:
Always derive a positive locator action timeout - by @sheremet-va in #10626 (5b864)
Resize the browser ui only if it's not headless - by @sheremet-va in #10662 (b5c61)
Check fs access in builtin commands - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #10674 (33f96)
coverage:
Non-awaited module imports cause wrong offsets - by @AriPerkkio in #10643 (c4090)
Fail fast when coverage.reportsDirectory conflicts between concurrent runs - by @jgamaraalv and @AriPerkkio in #10466 (833f0)
pool:
Improve error message when worker exits unexpectedly - by @filmaj and @AriPerkkio in #10587 (76139)
types:
Allow changed in configuration options - by @AriPerkkio in #10651 (0da12)
vm:
Fix external module resolve error with deps optimizer query for encoded URI - by @SveLil in #10658 (90c4e)
View changes on GitHub
Original source - Jul 6, 2026
- Date parsed from source:Jul 6, 2026
- First seen by Releasebot:Jul 6, 2026
v4.1.10
Vitest fixes browser fs access checks and vm external module resolution in a backport release.
馃悶 Bug Fixes
browser: Check fs access in builtin commands [backport to v4] - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #10680 (5c18d)
vm: Fix external module resolve error with deps optimizer query for encoded URI [backport to v4] - by @SveLil and @hi-ogawa in #10661 (bae52)
View changes on GitHub
Original source All of your release notes in one feed
Join Releasebot and get updates from Vitest and hundreds of other software products.
- Jul 6, 2026
- Date parsed from source:Jul 6, 2026
- First seen by Releasebot:Jul 6, 2026
v3.2.7
Vitest fixes browser fs access checks in builtin commands, backported to v3.
馃悶 Bug Fixes
browser: Check fs access in builtin commands [backport to v3] - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #10679 (b795e)
View changes on GitHub
Original source - Jun 16, 2026
- Date parsed from source:Jun 16, 2026
- First seen by Releasebot:Jun 16, 2026
v4.1.9
Vitest fixes key bugs in browser sessions, iframe readiness, mocking imports, and worker crashes, improving stability and reliability for v4 users.
馃悶 Bug Fixes
Fix importOriginal with optimizer and query import [backport to v4] - by Hiroshi Ogawa, David Harris, Codexand Vladimir in #10546 (a5180)
browser:
Wait for orchestrator readiness before resolving browser sessions [backport to v4] - by Vladimir and S茅amus O'Connor in #10555 (7fb29)
Wait for iframe tester readiness before preparing [backport to v4] - by Vladimir and S茅amus O'Connor in #10497 and #10556 (fbc62)
mocker:
Hoist vi.mock() for vite-plus/test imports [backport to v4] - by Hiroshi Ogawa, LongYinan, Claude Opus 4.8 and Vladimir in #10548 (2c955)
pool:
Prevent test run hang on worker crash [backport to v4] - by Ari Perkki枚 and Jattioui Ismail in #10543 and #10564 (934b0)
View changes on GitHub
Original source - Jun 15, 2026
- Date parsed from source:Jun 15, 2026
- First seen by Releasebot:Jun 16, 2026
v5.0.0-beta.5
Vitest ships breaking changes, new browser and coverage capabilities, and a set of bug fixes. Highlights include inline runner packaging, nested mark traces in the browser UI, a new --repeats CLI option, and improved stability across sessions, imports, mocks, and worker crashes.
馃毃 Breaking Changes
Don't lookup config file from ancestor directories - by @hi-ogawa, Codex and Hiroshi Ogawa in #10428 (945d9)
Inline @vitest/runner package, do not publish it anymore - by @sheremet-va in #10511 (6d6e4)
Allow mutating happy-dom/jsdom window object - by @hi-ogawa, Hiroshi Ogawa and Codex in #10373 (206e8)
Expose concurrencyId/workerId on TestModule's diagnostics, make id 1-based - by @sheremet-va in #10516 (bdd98)
browser: Require sessionId for orchestrator html request - by @hi-ogawa, Hiroshi Ogawa and Codex in #10522 (79b7d)
coverage: Allow thresholds.perFile to accept an object - by @vladlenskiy and @AriPerkkio in #10190 (13b78)
馃殌 Features
browser: Display nested mark trace in UI - by @hi-ogawa, Hiroshi Ogawa and Codex in #10437 (86ffc)
cli: Add --repeats CLI option - by @todor-a in #10504 (ee48b)
coverage: thresholds.autoUpdate to receive previous threshold as argument - by @wouterkroes in #10495 (04f81)
馃悶 Bug Fixes
Fix mixed stdout/stderr log timestamps in onUserConsoleLog - by @Copilot, Hiroshi Ogawa, @hi-ogawa and @sheremet-va in #10308 (62756)
Fix importOriginal with optimizer and query import - by @davidhwilliams, David Harris, @hi-ogawa, Hiroshi Ogawa and Codex in #10469 (6a3bb)
Correct transform time calculation in merged report - by @potatomatoooo and @hi-ogawa in #10570 and #10578 (b7897)
browser:
Wait for orchestrator readiness before resolving browser sessions - by @soconnor-seeq in #10397 (fe5ed)
Wait for iframe tester readiness before preparing - by @soconnor-seeq in #10497 (f2655)
Encode iframeId in tester iframe URL - by @Pduhard, Pduhard and Claude Opus 4.8 (1M context) in #10520 and #10521 (c8bf1)
coverage:
Avoid matching sibling project roots - by @innoprej, Shin JaeHee and @AriPerkkio in #10311 (e30dd)
mocker:
Hoist vi.mock() for vite-plus/test imports - by @Brooooooklyn and Claude Opus 4.8 (1M context) in #10489 (88376)
pool:
Prevent test run hang on worker crash - by @jaxalo and @AriPerkkio in #10543 (40878)
vitest:
Strip non-serializable functions from inline diff config - by @DucMinhNe in #10573 (5b81a)
View changes on GitHub
Original source Similar to Vitest with recent updates:
- Cursor release notes113 release notes 路 Latest Jul 10, 2026
- Google release notes1675 release notes 路 Latest Jul 14, 2026
- xAI release notes166 release notes 路 Latest Jul 12, 2026
- Anthropic release notes709 release notes 路 Latest Jul 14, 2026
- OpenAI release notes834 release notes 路 Latest Jul 14, 2026
- Zed release notes153 release notes 路 Latest Jul 13, 2026
- Jun 1, 2026
- Date parsed from source:Jun 1, 2026
- First seen by Releasebot:Jun 1, 2026
v5.0.0-beta.4
Vitest releases breaking changes, new browser and reporter features, and a wide set of bug fixes and performance improvements. Highlights include stricter text matching, browser trace view steps in the editor panel, single-file HTML reporter output, and faster hot paths.
馃毃 Breaking Changes
Throw an error if hoistable methods are outside the top level scope - by @sheremet-va in #10460 (d0b4f)
toHaveTextContent is strict, add toMatchTextContent as alternative - by @sheremet-va in #10473 (18f30)
benchmark: Rewrite the public API - by @sheremet-va in #10113 (19f6e)
browser: Enable locators.exact by default - by @sheremet-va in #10430 (e2032)
馃殌 Features
browser: Show trace view steps in editor panel - by @hi-ogawa and Codex in #10404 (8c4b6)
reporter: Support html reporter single file output - by @hi-ogawa, Codex and Claude Opus 4.7 (1M context) in #10235 (f757e)
馃悶 Bug Fixes
Preserve vi.defineHelper callsite for async error stack - by @macayu17 and @hi-ogawa in #10415 (ac697)
Respect disableConsoleIntercept in browser mode - by @Copilot, hi-ogawa, @hi-ogawa and Codex in #10391 (66110)
ForceRerunTriggers uses directory globs against files - by @Patrick-Clausen and Patrick Clausen in #10421 and #10420 (4fee2)
Unify typechecking and ast collection - by @sheremet-va in #10449 (af993)
Don't print typecheck warning more than once - by @sheremet-va in #10461 (15275)
Correct collumn when parsing tests - by @sheremet-va in #10467 (7c2fc)
browser:
Fix stale source map on watch mode - by @hi-ogawa in #10389 (6d772)
Escape inline orchestrator scripts - by @hi-ogawa and Codex in #10412 (c22cf)
Disable client cdp API when allowWrite/allowExec: false - by @hi-ogawa and Codex in #10444 (63e3b)
mocker:
Skip hoist transform without ast mock calls - by @hi-ogawa and Codex in #10410 (0468e)
ui:
Fix module graph in browser mode with --ui - by @hi-ogawa in #10386 (3003c)
Render ANSI color codes in editor panel inline error widget - by @Copilot, hi-ogawa and @hi-ogawa in #10418 (766b8)
webdriverio:
Allow gpu in headless chrome - by @rotempasharel1 in #10376 (f310a)
馃弾 Performance
Improve performance in hot paths - by @sheremet-va in #10446 (03faf)
View changes on GitHub
Original source - Jun 1, 2026
- Date parsed from source:Jun 1, 2026
- First seen by Releasebot:Jun 1, 2026
v4.1.8
Vitest fixes browser client CDP access controls and cleans up orphaned Playwright routes in a backport release.
Bug Fixes
browser:
Disable client cdp API when allowWrite/allowExec: false [backport to v4] - by @hi-ogawa and Codex in #10450 (e4067)
Remove orphaned Playwright route when same module is mocked via multiple ids [backport to v4] - by @toxik and @Zelys-DFKH in #10474 (675b4)
View changes on GitHub
Original source - Jun 1, 2026
- Date parsed from source:Jun 1, 2026
- First seen by Releasebot:Jun 1, 2026
v3.2.6
Vitest fixes a bug by pinning the last supported vite-node version.
馃悶 Bug Fixes
Pin last supported vite-node version - by @sheremet-va (16f12)
View changes on GitHub
Original source - Jun 1, 2026
- Date parsed from source:Jun 1, 2026
- First seen by Releasebot:Jun 1, 2026
v3.2.5
Vitest adds allowWrite and allowExec options to the API and disables client CDP access when they are false.
Features
api: Add allowWrite and allowExec options to api [backport to v3] - by @hi-ogawa and Codex in #10445 (af88b)
Bug Fixes
browser: Disable client cdp API when allowWrite/allowExec: false [backport to v3] - by @hi-ogawa and Codex in #10456 (385a1)
View changes on GitHub
Original source - May 20, 2026
- Date parsed from source:May 20, 2026
- First seen by Releasebot:Jun 1, 2026
v4.1.7
Vitest fixes runner concurrency by limiting it per task branch and leaf callbacks.
馃悶 Bug Fixes
runner: Limit concurrency per task branch in addition to per leaf callbacks (backport) - by @hi-ogawa in #10384 (4f0f2)
View changes on GitHub
Original source - May 19, 2026
- Date parsed from source:May 19, 2026
- First seen by Releasebot:May 19, 2026
v5.0.0-beta.3
Vitest releases a major update with Node.js 22 and Vite 6.4 requirements, plus new TypeScript build mode support, richer test and trace logging, improved browser and reporter tooling, and faster diff and screenshot handling.
Breaking Changes
Require Node.js 22 and Vite 6.4 - by @sheremet-va in #10178 (38762)
Fail expect.poll when function didn't resolve in time - by @hi-ogawa and Codex in #10233 (4df04)
Features
Support typescript build mode - by @lishaduck in #9870 (106da)
api:
Expose logs recorded during the test - by @sheremet-va in #10277 (cba20)
browser:
Show aria tree on locator element error - by @hi-ogawa and Codex in #10257 (04f04)
Support custom kind in page.mark - by @AriPerkkio in #10302 (053e8)
Live update trace view on watch UI - by @hi-ogawa and Codex in #10296 (78c11)
Add context.mark for custom command tracing - by @AriPerkkio in #10329 (aa514)
Bug Fixes
Shell injection safety via github.ref_name in publish workflow - by @lloyd-c137 and lloyd-c137 in #10327 (dd020)
Make attachmentsDir root only config - by @hi-ogawa and Codex in #10334 (fab1b)
Apply cjs interop for truthy __esModule - by @hi-ogawa in #10363 (2b135)
browser:
Simplify orchestrator otel carrier - by @hi-ogawa in #10283 (3514f)
Remove orphaned Playwright route when same module is mocked via multiple ids - by @Zelys-DFKH in #9957 and #10267 (41db6)
Skip wrapDynamicImport transform on ssr environment - by @hi-ogawa in #10355 (d3c96)
cli:
Respect FORCE_COLOR over agent detection - by @dokson in #10272 (7e66b)
coverage:
exclude to not inherit negation globs from test.include - by @AriPerkkio in #10299 (28685)
deps:
Update fake-timers to 15.3.2. support toNotFake - by @BPScott, @hi-ogawa and Codex in #10043 (bbf2f)
expect:
Allow readonly arrays and sets in toBeOneOf - by @YBJ0000 in #10264 and #10374 (fed11)
junit:
Include unhandled errors in JUnit XML report - by @gbleu and Claude Sonnet 4.6 in #10244 (6f74e)
reporter:
Guard against non-finite slowTestThreshold in summary reporter - by @OfekDanny, Ofek Danny, Claude Sonnet 4.6 and @AriPerkkio in #10202 (f362f)
Fix non-existing import subpath module blob serialization - by @hi-ogawa in #10318 (29cb0)
reporters:
Fix blob file name with label - by @hi-ogawa in #10346 (c5e2e)
summary to intercept logger's streams even when they are not process.std* streams - by @AriPerkkio in #10340 (f79e7)
Fix missing testModules in onTestRunEnd when merging blobs from different root directory test runs - by @hi-ogawa and Codex in #10348 (745b3)
runner:
Remove AbortSignal listener leak in withCancel - by @tomohiro86 and @AriPerkkio in #10265 (ab098)
ui:
Fix duplicate colored error message - by @hi-ogawa and Codex in #10258 (035e3)
Fix missing source code in html reporter metadata when merging blobs with different root directory test runs - by @hi-ogawa and Codex in #10338 (4f7c2)
Performance
Stringify diff objects only once - by @sheremet-va in #10276 (d006a)
browser: Reduce matching screenshot overhead - by @kasperpeulen in #10278 (511c0)
View changes on GitHub
Original source - May 19, 2026
- Date parsed from source:May 19, 2026
- First seen by Releasebot:May 19, 2026
- May 11, 2026
- Date parsed from source:May 11, 2026
- First seen by Releasebot:May 11, 2026
v4.1.6
Vitest fixes browser screenshots, concurrent test handling, and diff performance.
Bug Fixes
browser: Provide project reference in ToMatchScreenshotResolvePath - by @macarie and @sheremet-va in #10138 (31882)
Global sequence.concurrent: true with top-level test(..., { concurrent: false }) + depreacte sequential test API and options - by @hi-ogawa, Codex and @sheremet-va in #10196 (2847d)
browser: Simplify orchestrator otel carrier - by @hi-ogawa in #10285 (18af9)
Performance
Stringify diff objects only once - by @sheremet-va in #10276 (9f7b1)
View changes on GitHub
Original source - May 5, 2026
- Date parsed from source:May 5, 2026
- First seen by Releasebot:May 6, 2026
v5.0.0-beta.2
Vitest ships a major update with breaking changes around attachments, reporters, locator handling, inline expect, and deprecated entry points, while adding new reporter defaults, merged report support, richer error logging, screenshot path context, and coverage and JUnit improvements.
馃毃 Breaking Changes
Default attachmentsDir from .vitest-attachements/ to .vitest/attachments/ - by @MdSadiqMd in #10186 (1ba73)
Remove sequential test/suite options in favor of concurrent - by @hi-ogawa and Codex in #10198 (9229f)
Represent locator as an object instead of a string - by @sheremet-va in #10212 (80f07)
Inline expect package - by @sheremet-va in #10221 (ad162)
Remove deprecated entry points - by @sheremet-va in #10222 (994c6)
mocker: Deserialize automock as automock - by @nami8824 in #10192 (2f892)
reporters: blob reporter and --merge-reports default to .vitest/blob/ - by @AriPerkkio in #10232 (d22b0)
馃殌 Features
Expose default reporters through configDefaults.reporters - by @hi-ogawa and Claude Sonnet 4.6 in #10219 (083f6)
Support merge reports for non-sharded multi-environment runs (take 2) - by @hi-ogawa, Claude Sonnet 4.6, Codex and @AriPerkkio in #10031 (e60b2)
Add logger.formatError - by @hi-ogawa and Codex in #10268 (2c5f3)
browser: Provide project reference in ToMatchScreenshotResolvePath - by @macarie and @sheremet-va in #10138 (16654)
coverage: V8 to track node:child_process and node:worker_threads contexts - by @AriPerkkio in #9976 (9baa5)
junit-reporter: Add jest-junit-compatible naming options - by @neumaennl, neumaennl, @neumann4soft and Copilot in #10189 (27393)
馃悶 Bug Fixes
Global sequence.concurrent: true with top-level test(..., { concurrent: false }) + depreacte sequential test API and options - by @hi-ogawa, Codex and @sheremet-va in #10194 (9387f)
Test tags options should overwrite inherited suite options + inherit suite options in task API - by @hi-ogawa and Codex in #10216 (457db)
Udpate optimize deps config - by @sheremet-va in #10223 (95dc6)
browser:
Fix trace highlight of shadow dom on webdriverio - by @hi-ogawa in #10227 (b01af)
deps:
Update ivya to fix empty aria tree snapshot - by @hi-ogawa in #10218 (f7822)
runner:
Propagate chainable flags in describe.for - by @DORI2001, Dor Alagem and @hi-ogawa in #10187 (db678)
Limit concurrency per task branch in addition to per leaf callbacks - by @hi-ogawa in #10179 (3112a)
snapshot:
Treat empty string as valid snapshot - by @mayrang and @hi-ogawa in #10188 (e145d)
spy:
Support private method spy types - by @cyphercodes in #10172 and #10213 (628ab)
View changes on GitHub
Original source - Apr 23, 2026
- Date parsed from source:Apr 23, 2026
- First seen by Releasebot:Apr 23, 2026
v5.0.0-beta.1
Vitest adds report generation and a new .vitest report directory convention, supports DOM snapshot trace view and browser aria tree utils, and fixes several snapshot, coverage, browser, and expect issues while making a few breaking changes.
Breaking Changes
Replace loupe.inspect with pretty-format - by @hi-ogawa, Claude Sonnet 4.6 and Codex in #9609 (3f802)
Remove quotes from string values in test.for/each title $ variable (take 2) - by @hi-ogawa in #10170 (04d37)
browser: Iframe scale - by @macarie in #9745 (b6398)
coverage: include/exclude globs too eager - by @AriPerkkio in #9818 (edacb)
expect: Fix toThrow("") behavior by reverting #6710 - by @hi-ogawa in #9643 and #6710 (6c3e4)
Features
Add createReport and .vitest report directory convention - by @AriPerkkio in #9993 (72a6d)
browser:
Export aria tree utils - by @hi-ogawa in #10171 (c3423)
Support dom snapshot trace view - by @hi-ogawa, Claude Sonnet 4.6 and Codex in #10102 (7eddd)
Bug Fixes
snapshot: Fail test when snapshot assertion is used with test.fails - by @hi-ogawa in #10090 (e1aa7)
View changes on GitHub
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.