Releases: vitest-dev/vitest
Releases · vitest-dev/vitest
Release list
v5.0.0-beta.6
Immutable
release. Only release title and notes can be modified.
🚨 Breaking Changes
- Add
screenshotDirectoryconfig tobrowser.expect.toMatchScreenshot- by @macarie in #10592 (a60de) - Update
@sinonjs/fake-timersand support mockingTemporal- 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
.vitestby default - by @hi-ogawa, Hiroshi Ogawa, OpenCode (claude-opus-4-8) and @AriPerkkio in #10621 (58577)
- Write json and junit reporter output files to
- ui:
🚀 Features
🐞 Bug Fixes
- Fix
setImmediateawait in detect-async-leak - by @hi-ogawa and Hiroshi Ogawa in #10608 (dd62b) - Fix per-project
sequenceconfig - 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
includeTaskLocationis 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.reportsDirectoryconflicts 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
changedin configuration options - by @AriPerkkio in #10651 (0da12)
- Allow
- vm:
View changes on GitHub
v4.1.10
Immutable
release. Only release title and notes can be modified.
🐞 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
v3.2.7
Immutable
release. Only release title and notes can be modified.
🐞 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
v5.0.0-beta.5
Immutable
release. Only release title and notes can be modified.
🚨 Breaking Changes
- Don't lookup config file from ancestor directories - by @hi-ogawa, Codex and Hiroshi Ogawa in #10428 (945d9)
- Inline
@vitest/runnerpackage, 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/workerIdon TestModule's diagnostics, make id 1-based - by @sheremet-va in #10516 (bdd98) - browser: Require
sessionIdfor orchestrator html request - by @hi-ogawa, Hiroshi Ogawa and Codex in #10522 (79b7d) - coverage: Allow
thresholds.perFileto 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
--repeatsCLI option - by @todor-a in #10504 (ee48b) - coverage:
thresholds.autoUpdateto 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
importOriginalwith 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
v4.1.9
Immutable
release. Only release title and notes can be modified.
🐞 Bug Fixes
- Fix
importOriginalwith optimizer and query import [backport to v4] - by Hiroshi Ogawa, David Harris, Codexand Vladimir in #10546 (a5180) - browser:
- mocker:
- pool:
View changes on GitHub
v5.0.0-beta.4
Immutable
release. Only release title and notes can be modified.
🚨 Breaking Changes
- Throw an error if hoistable methods are outside the top level scope - by @sheremet-va in #10460 (d0b4f)
toHaveTextContentis strict, addtoMatchTextContentas alternative - by @sheremet-va in #10473 (18f30)- benchmark: Rewrite the public API - by @sheremet-va in #10113 (19f6e)
- browser: Enable
locators.exactby 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.defineHelpercallsite for async error stack - by @macayu17 and @hi-ogawa in #10415 (ac697) - Respect
disableConsoleInterceptin 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:
- mocker:
- ui:
- 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
v4.1.8
Immutable
release. Only release title and notes can be modified.
v3.2.6
Immutable
release. Only release title and notes can be modified.
v3.2.5
Immutable
release. Only release title and notes can be modified.
v5.0.0-beta.3
Immutable
release. Only release title and notes can be modified.
🚨 Breaking Changes
- Require Node.js 22 and Vite 6.4 - by @sheremet-va in #10178 (38762)
- Fail
expect.pollwhen 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
kindinpage.mark- by @AriPerkkio in #10302 (053e8) - Live update trace view on watch UI - by @hi-ogawa and Codex in #10296 (78c11)
- Add
context.markfor 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
attachmentsDirroot only config - by @hi-ogawa and Codex in #10334 (fab1b) - Apply cjs interop for truthy
__esModule- by @hi-ogawa in #10363 (2b135) - browser:
- cli:
- coverage:
excludeto not inherit negation globs fromtest.include- by @AriPerkkio in #10299 (28685)
- deps:
- expect:
- junit:
- 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)
summaryto intercept logger's streams even when they are notprocess.std*streams - by @AriPerkkio in #10340 (f79e7)- Fix missing
testModulesinonTestRunEndwhen 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:
🏎 Performance
- Stringify diff objects only once - by @sheremet-va in #10276 (d006a)
- browser: Reduce matching screenshot overhead - by @kasperpeulen in #10278 (511c0)