Vitest v4.0.15stable Released Dec 02, 2025
Impact Score: 5/10

Vitest v4.0.15 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: vitest ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Vitest v4.0.15. Source highlight:    ๐Ÿš€ Experimental Features

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (1)

  • **reporters**: Print import duration breakdown &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9105 <samp>(122ff)</samp>

๐Ÿ”ง Bug Fixes & Patches (6)

  • **cache**: Add opt-out on a plugin level, fix internal root cache &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9154 <samp>(a68f7)</samp>
  • Keep built-in id as is in bun and deno &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9117 <samp>(075ab)</samp>
  • Use `optimizeDeps.rolldownOptions` to fix depreated warning + fix `ssr.external: true` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9121 <samp>(fd8bd)</samp>
  • Fix external behavior with `deps.optimizer` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9125 <samp>(4c754)</samp>
  • Very minor typo in "Chrome DevTools Protocol" &nbsp;-&nbsp; by @HowToTestFrontend in https://github.com/vitest-dev/vitest/issues/9146 <samp>(20997)</samp>
  • **browser**: Run `toMatchScreenshot` only once when used with `expect.element` &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9132 <samp>(0d2e7)</samp>
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
### &nbsp;&nbsp;&nbsp;๐Ÿš€ Experimental Features - **cache**: Add opt-out on a plugin level, fix internal root cache &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9154 [<samp>(a68f7)</samp>](https://github.com/vitest-dev/vitest/commit/a68f74e5e) - **reporters**: Print import duration breakdown &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9105 [<samp>(122ff)</samp>](https://github.com/vitest-dev/vitest/commit/122ff321c) ### &nbsp;&nbsp;&nbsp;๐Ÿž Bug Fixes - Keep built-in id as is in bun and deno &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9117 [<samp>(075ab)</samp>](https://github.com/vitest-dev/vitest/commit/075ab3520) - Use `optimizeDeps.rolldownOptions` to fix depreated warning + fix `ssr.external: true` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9121 [<samp>(fd8bd)</samp>](https://github.com/vitest-dev/vitest/commit/fd8bd6dee) - Fix external behavior with `deps.optimizer` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9125 [<samp>(4c754)</samp>](https://github.com/vitest-dev/vitest/commit/4c75492cc) - Very minor typo in "Chrome DevTools Protocol" &nbsp;-&nbsp; by @HowToTestFrontend in https://github.com/vitest-dev/vitest/issues/9146 [<samp>(20997)</samp>](https://github.com/vitest-dev/vitest/commit/209976419) - **browser**: Run `toMatchScreenshot` only once when used with `expect.element` &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9132 [<samp>(0d2e7)</samp>](https://github.com/vitest-dev/vitest/commit/0d2e7e3e2) - **coverage**: Istanbul provider to not break source maps &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9040 [<samp>(e4ca9)</samp>](https://github.com/vitest-dev/vitest/commit/e4ca917f1) - **deps**: Update dependency tinyexec to v1 &nbsp;-&nbsp; in https://github.com/vitest-dev/vitest/issues/9122 [<samp>(fd786)</samp>](https://github.com/vitest-dev/vitest/commit/fd7860222) - **docs**: Remove `--browser.provider` from docs &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9115 [<samp>(120b3)</samp>](https://github.com/vitest-dev/vitest/commit/120b3dac1) - **expect**: Preserve `currentTestName` in extended matchers &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9106 [<samp>(e4345)</samp>](https://github.com/vitest-dev/vitest/commit/e43458e02) - **pool**: Terminate workers on `CTRL+c` forceful exits &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9140 [<samp>(d57d8)</samp>](https://github.com/vitest-dev/vitest/commit/d57d8bf0a) - **reporters**: Show project in github reporter &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9138 [<samp>(bb65e)</samp>](https://github.com/vitest-dev/vitest/commit/bb65e15c7) - **spy**: Do not mock overriden method, if parent was automocked &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9116 [<samp>(1a246)</samp>](https://github.com/vitest-dev/vitest/commit/1a24607b4) - **web-worker**: MessagePort objects passed to Worker.postMessage work when clone === "native" &nbsp;-&nbsp; by @whitphx in https://github.com/vitest-dev/vitest/issues/9118 [<samp>(deee8)</samp>](https://github.com/vitest-dev/vitest/commit/deee83e54) ##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15)