🐞 Bug Fixes Revive global concurrency limit for test lifecycle [backport to v4] - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10992 (5146d) browser: Encode iframeId in tester iframe URL [backport to v4] - b
Catalog / Testing
Vitest changelog
Test runner for JavaScript and TypeScript projects, using the Vite transform pipeline to load the files under test.
- Latest
- 4.1.11
- Shipped
- 18 Aug 202612 days ago
- Collected
- 60 releasesback to 13 Nov 2024
- Source
- vitest-dev/vitest
- Project
- vitest.dev
- Advisories
- 7 publishednewest 2026
- Breaking
- 3 releasestagged by the publisher
- Feed
- RSS
Every release of a major line in one list, which is the one view the publisher never writes: 2 to 3, 3 to 4. Only the lines whose first release the archive holds are listed, because a partial major would read as the whole of one.
Read today, the first day on record. Collection status
Version history
4.x31 releases
🐞 Bug Fixes browser: Check fs access in builtin commands [backport to v4] - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in https://github.com/vitest-dev/vitest/issues/10680 (5c18d) vm: Fix external module resolve error with
🐞 Bug Fixes Fix importOriginal with optimizer and query import [backport to v4] - by Hiroshi Ogawa, David Harris, Codexand Vladimir in https://github.com/vitest-dev/vitest/issues/10546 (a5180) browser: Wait for orchestrator readiness befor
🐞 Bug Fixes browser: Disable client cdp API when allowWrite/allowExec: false [backport to v4] - by @hi-ogawa and Codex in https://github.com/vitest-dev/vitest/issues/10450 (e4067) Remove orphaned Playwright route when same module is mocked
🐞 Bug Fixes runner: Limit concurrency per task branch in addition to per leaf callbacks (backport) - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10384 (4f0f2) View changes on GitHub
🐞 Bug Fixes browser: Provide project reference in ToMatchScreenshotResolvePath - by @macarie and @sheremet-va in https://github.com/vitest-dev/vitest/issues/10138 (31882) Global sequence.concurrent: true with top-level test(..., { concurre
🚀 Experimental Features coverage: Istanbul to support instrumenter option - by @BartWaardenburg and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10119 (0e0ff) 🐞 Bug Fixes --project negation excludes browser instances - by @f
🚀 Experimental Features coverage: Default to text reporter skipFull if agent detected - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10018 (53757) experimental: Expose assertion as a public field - by @sheremet-va in https:/
🚀 Experimental Features Add experimental.preParse flag - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10070 (78273) Support browser.locators.exact option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10
This release bumps Vitest's flatted version and removes version pinning to resolve flatted's CVE related issues (https://github.com/vitest-dev/vitest/issues/9975). 🐞 Bug Fixes Don't resolve setupFiles from parent directory - by @hi-ogawa i
🚀 Features experimental: Expose matchesTags to test if the current filter matches tags - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9913 (eec53) Introduce experimental.vcsProvider - by @sheremet-va in https://github.com
Vitest 4.1 is out! This release page lists all changes made to the project during the 4.1 beta. To get a review of all the new features, read our blog post. 🚀 Features Return a disposable from doMock() - by @kirkwaiblinger in https://githu
🚀 Experimental Features experimental: Add onModuleRunner hook to worker.init - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9286 (ea837) 🐞 Bug Fixes Use meta.url in createRequire - by @sheremet-va in https://github.com/v
🚀 Experimental Features Support openTelemetry for browser mode - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9180 (1ec3a) Support TRACEPARENT and TRACESTATE environment variables for OpenTelemetry context propagation - by @
🐞 Bug Fixes Fix browser mode default testTimeout back to 15 seconds - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9167 (da0ad) Avoid crashing on process.versions stub - by @AriPerkkio in https://github.com/vitest-dev/vitest
🚀 Experimental Features cache: Add opt-out on a plugin level, fix internal root cache - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9154 (a68f7) reporters: Print import duration breakdown - by @sheremet-va in https://git
🚀 Experimental Features browser: Expose utils.configurePrettyDOM - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9103 (2cc34) runner: Add full names to tasks - by @macarie in https://github.com/vitest-dev/vitest/issues/908
🐞 Bug Fixes types: Don't use type from Vite 7.1 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9071 (6356b) Don't import node.js dependent types in vitest/browser - by @sheremet-va in https://github.com/vitest-dev/vitest/
🐞 Bug Fixes Inherit fsModuleCachePath by default - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9063 (9a8bc) Don't import from @opentelemetry/api in public types - by @sheremet-va in https://github.com/vitest-dev/vitest/i
🚀 Experimental Features api: Add extensible test artifact API - by @macarie in https://github.com/vitest-dev/vitest/issues/8987 (77292) See more at https://vitest.dev/api/advanced/artifacts expect: Provide task in MatchState - by @macarie
🐞 Bug Fixes Remove onCancel when worker is terminated - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9033 (6d7f0) browser: Don't scale the iframe if UI is disabled - by @sheremet-va in https://github.com/vitest-dev/vitest
🚀 Experimental Features expect: Add Set support to toBeOneOf - by @tim-we and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8906 (a415d) 🐞 Bug Fixes browser: Add favicon icons to the browser mode ui - by @userquin in https:/
🐞 Bug Fixes Workaround noExternal merging bug on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/8950 (bcb13) Missed context.d.ts file - by @termorey in https://github.com/vitest-dev/vitest/issues/8965 (9044d) Incorrec
🐞 Bug Fixes Bind process in case global is overwritten - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8916 (6240d) Create environment once per worker with isolate: false - by @sheremet-va in https://github.com/vitest-dev/v
🐞 Bug Fixes Don't merge errors with different diffs for reporting - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/8871 (3e19f) Do not throw when importing a type from an external package - by @sheremet-va in https://github.co
🐞 Bug Fixes Respect ssr.noExternal when externalizing dependencies, fix Svelte and Astro - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8862 (a4f86) Allow module in --config - by @sheremet-va in https://github.com/vitest-
🐞 Bug Fixes browser: Correct typo - by @benmccann in https://github.com/vitest-dev/vitest/issues/8796 (ede1f) Publish a missing context file for webdriverio - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8824 (7c7b6) mock
🐞 Bug Fixes Preserve reporter options from config when CLI reporters override them - by @Copilot and sheremet-va in https://github.com/vitest-dev/vitest/issues/8794 (15552) browser: More stable in-source testing validation - by @sheremet-v
🐞 Bug Fixes browser: Don't print the deprecation notice in node_modules - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8779 (588f7) pool: Assign envs before running tests to keep in sync with process.env - by @sheremet-va
🐞 Bug Fixes Move the getBuiltins check - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8765 (81000) pool: Don't teardown the communication channel too soon if something is running after the test - by @sheremet-va in https:
Vitest 4.0 is out! To stay updated, read our blog post and check the migration guide. 🚨 Breaking Changes Remove 'basic' reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7884 (82fcf) Simplify default exclude pattern
3.x23 releases
🐞 Bug Fixes browser: Check fs access in builtin commands [backport to v3] - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in https://github.com/vitest-dev/vitest/issues/10679 (b795e) View changes on GitHub
🐞 Bug Fixes Pin last supported vite-node version - by @sheremet-va (16f12) View changes on GitHub
🚀 Features api: Add allowWrite and allowExec options to api [backport to v3] - by @hi-ogawa and Codex in https://github.com/vitest-dev/vitest/issues/10445 (af88b) 🐞 Bug Fixes browser: Disable client cdp API when allowWrite/allowExec: fals
🐞 Bug Fixes Use correct path for optimisation of strip-literal - by @mrginglymus in https://github.com/vitest-dev/vitest/issues/8139 (44940) Print uint and buffer as a simple string - by @sheremet-va in https://github.com/vitest-dev/vitest
🚀 Features browser: Use base url instead of vitest - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8126 (1d8eb) ui: Show test annotations and metadata in the test report tab - by @sheremet-va in https://github.com/vitest-d
🚀 Features Support rolldown-vite - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7509 (c8d62) 🐞 Bug Fixes browser: Calculate prepare time from createTesters call on the main thread - by @sheremet-va in https
🐞 Bug Fixes Use sha1 instead of md5 for hashing - by @sheremet-va (e4c73) expect: Fix chai import in dts - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/8077 (a7593) Export DeeplyAllowMatchers - by @sheremet-va in https://git
🚀 Features Provide ctx.signal - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7878 (e761f) Support custom colors for test.name - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7809 (4af5d) Add vi.mockObject
🐞 Bug Fixes Apply browser CLI options only if the project has the browser set in the config already - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8002 (64f2b) View changes on GitHub
🐞 Bug Fixes Correctly resolve vitest import if inline: true is set - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7856 (a83f3) Fix fixture parsing with lowered async with esbuild 0.25.3 - by @hi-ogawa in https://github.co
🐞 Bug Fixes Add global chai variable in vitest/globals (fix: #7474) - by @Jay-Karia in https://github.com/vitest-dev/vitest/issues/7771 and https://github.com/vitest-dev/vitest/issues/7474 (d9297) Prevent modifying test.exclude when same o
🐞 Bug Fixes reporter: Report tests in correct order - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7752 (b166e) Print test only once in the verbose mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/773
🚀 Features Introduce %$ option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 (df347) Add diff.maxDepth option and set non-Infinity value as a default to reduce crash - by @hi-og
🐞 Bug Fixes Typings of ctx.skip() as never - by @sirlancelot in https://github.com/vitest-dev/vitest/issues/7608 (09f35) Cleanup vitest in public resolveConfig API - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7623 (db14a)
🐞 Bug Fixes Fix fetch cache multiple writes - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7546 (1a8b4) Use browser.isolate instead of config.isolate - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7560 (4b5
🐞 Bug Fixes browser: Support webdriverio 9 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7553 (b1949) deps: Update all non-major dependencies - in https://github.com/vitest-dev/vitest/issues/7543 (365ff) expect: Correct
🐞 Bug Fixes Fix getMockedSystemTime for useFakeTimer - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7405 (03912) Compat for jest-image-snapshot - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7390 (9542b) Ensur
This release includes security patches for: Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964 🚀 Features ui: Insert message "no tests found" in ui - by @DevJoaoLopes in https://g
This release includes security patches for: Browser mode serves arbitrary files | CVE-2025-24963 🐞 Bug Fixes Filter projects eagerly during config resolution - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/
🐞 Bug Fixes browser: Don't throw a validation error if v8 coverage is used with filtered instances - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7306 (fa463) Don't fail when running --browser.headless if the browser proj
🐞 Bug Fixes Don't await an empty timeout after every test - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7281 (ef1aa) expect: Fix expect().resolves/rejects chain typings - by @hi-ogawa in https://github.com/vitest-dev/vit
🐞 Bug Fixes Revert "fix: re-apply default conditions if using vite 6 or later (https://github.com/vitest-dev/vitest/issues/7071)" - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7071 and https://github.com/vitest-dev/vites
Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the documentation. 🚨 Breaking C
2.x5 releases
This release includes security patches for: Browser mode serves arbitrary files | CVE-2025-24963 Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964 🐞 Bug Fixes backport https://gi
🐞 Bug Fixes Support Node 21 - by @sheremet-va (92f7a) View changes on GitHub
🐞 Bug Fixes Revert support for Vite 6 - by @sheremet-va (fbe5c) This introduced some breaking changes (https://github.com/vitest-dev/vitest/issues/6992). We will enable support for it later. In the meantime, you can still use pnpm.override
🚀 Features Support Vite 6 View changes on GitHub
🐞 Bug Fixes dangerouslyIgnoreUnhandledErrors without base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6808 (0bf0a) Capture unhandledRejection even when base reporter is not used - by @AriPerkkio in https://gith
1.x1 release
This release includes security patches for: Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964 🐞 Bug Fixes backport https://github.com/vitest-dev/vitest/issues/7317 to v1 - by @hi