Vitest v0.29.0stable Released Feb 25, 2023
โš ๏ธ Breaking Change Impact Score: 7/10

Vitest v0.29.0 โ€” 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.

Breaking-change evidence from the source

  • One of the potential breaking bug fixes is that environments do not share the same global scope anymore if you run them with `--no-isolate`, `--no-threads` or `--single-thread` - you might need to update your setup files if you were relying on a global variable before.
  • One of the breaking changes includes adding a link to snapshots inside snapshot files, meaning you will need to update all your snapshots.
  • &nbsp;&nbsp;&nbsp;๐Ÿšจ Breaking Changes - Vitest as peer dependency for coverage packages &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2836 [<samp>(94247)</samp>](https://github.com/vitest-dev/vitest/commit/94247f1b)
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Vitest v0.29.0. Source highlight: This release makes some significant changes to how tests are running. If you were using `--no-threads` before, you might consider enabling `--single-thread` instead (because your tests are now running in `child_process` instead of a worker thread) or try our new performance optimization feature (dis

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.

โš ๏ธ Breaking Changes & Deprecations (3)

  • One of the potential breaking bug fixes is that environments do not share the same global scope anymore if you run them with `--no-isolate`, `--no-threads` or `--single-thread` - you might need to update your setup files if you were relying on a global variable before.
  • One of the breaking changes includes adding a link to snapshots inside snapshot files, meaning you will need to update all your snapshots.
  • &nbsp;&nbsp;&nbsp;๐Ÿšจ Breaking Changes - Vitest as peer dependency for coverage packages &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2836 [<samp>(94247)</samp>](https://github.com/vitest-dev/vitest/commit/94247f1b)

โœจ New Features & Capabilities (6)

  • Add a link to the comment at the top of the snapshot file &nbsp;-&nbsp; by @btea in https://github.com/vitest-dev/vitest/issues/2867 <samp>(615e1)</samp>
  • Add test seed to banner &nbsp;-&nbsp; by @btkostner in https://github.com/vitest-dev/vitest/issues/2877 <samp>(bdb39)</samp>
  • Use custom source-map-support implementation &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2905 <samp>(6ff6c)</samp>
  • Add an option to enable Vite optimizer &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2912 <samp>(af8de)</samp>
  • Add support for coverage reporter options &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2690 <samp>(f8176)</samp>
  • Automatic threshold updating &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2886 <samp>(e1652)</samp>

๐Ÿ”ง Bug Fixes & Patches (5)

  • Tests with `node` and `jsdom` (and other environments) now don't share the same global scope, if you run them with `--no-isolate` or `--no-threads` flag. Vitest doesn't provide a way to restore the previous behavior as it is considered a bug.
  • Wait for console.log to print a message before terminating a worker &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2861 <samp>(fbc54)</samp>
  • Cleanup last mocked cache when call vi.doMock &nbsp;-&nbsp; by @mysteryven in https://github.com/vitest-dev/vitest/issues/2872 <samp>(65d71)</samp>
  • Reload changed configuration file on watch mode &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2889 <samp>(4d277)</samp>
  • **coverage**: Custom providers to work inside worker threads &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2817 <samp>(81604)</samp>
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
This release makes some significant changes to how tests are running. If you were using `--no-threads` before, you might consider enabling `--single-thread` instead (because your tests are now running in `child_process` instead of a worker thread) or try our new performance optimization feature (discussed later). If you were relying on API that was not available inside a worker (like `process.chdir()`, you can now use this option. One of the potential breaking bug fixes is that environments do not share the same global scope anymore if you run them with `--no-isolate`, `--no-threads` or `--single-thread` - you might need to update your setup files if you were relying on a global variable before. If you had performance issues on large code bases before, try the new [`deps.experimentalOptimizer`](https://vitest.dev/config/#deps-experimentaloptimizer) option instead of disabling threads. Feedback is welcome! One of the breaking changes includes adding a link to snapshots inside snapshot files, meaning you will need to update all your snapshots. ### &nbsp;&nbsp;&nbsp;๐Ÿšจ Breaking Changes - Vitest as peer dependency for coverage packages &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2836 [<samp>(94247)</samp>](https://github.com/vitest-dev/vitest/commit/94247f1b) - Coverage-c8 to use V8 profiler directly instead of `NODE_V8_COVERAGE` &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2786 [<samp>(095c6)</samp>](https://github.com/vitest-dev/vitest/commit/095c6390) - Add a link to the comment at the top of the snapshot file &nbsp;-&nbsp; by @btea in https://github.com/vitest-dev/vitest/issues/2867 [<samp>(615e1)</samp>](https://github.com/vitest-dev/vitest/commit/615e150b) - Always run separate environments in isolation &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2860 [<samp>(1f858)</samp>](https://github.com/vitest-dev/vitest/commit/1f858e0c) - Tests with `node` and `jsdom` (and other environments) now don't share the same global scope, if you run them with `--no-isolate` or `--no-threads` flag. Vitest doesn't provide a way to restore the previous behavior as it is considered a bug. - Use child_process when --no-threads is used &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2772 [<samp>(7bf54)</samp>](https://github.com/vitest-dev/vitest/commit/7bf54505) - Tests inside `chid_process` might run longer due to the communication overhead. If you want to restore the previous behavior, use `--single-thread`. ### &nbsp;&nbsp;&nbsp;๐Ÿš€ Features - Add test seed to banner &nbsp;-&nbsp; by @btkostner in https://github.com/vitest-dev/vitest/issues/2877 [<samp>(bdb39)</samp>](https://github.com/vitest-dev/vitest/commit/bdb39569) - Use custom source-map-support implementation &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2905 [<samp>(6ff6c)</samp>](https://github.com/vitest-dev/vitest/commit/6ff6c6eb) - Add an option to enable Vite optimizer &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2912 [<samp>(af8de)</samp>](https://github.com/vitest-dev/vitest/commit/af8de362) - **coverage**: - Add support for coverage reporter options &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2690 [<samp>(f8176)</samp>](https://github.com/vitest-dev/vitest/commit/f8176182) - Automatic threshold updating &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2886 [<samp>(e1652)</samp>](https://github.com/vitest-dev/vitest/commit/e1652163) - **spy**: - Implement mock.withImplementation API &nbsp;-&nbsp; by @obadakhalili and @sheremet-va in https://github.com/vitest-dev/vitest/issues/2835 [<samp>(610b1)</samp>](https://github.com/vitest-dev/vitest/commit/610b1d46) - **vite-node**: - Cli option for vite mode &nbsp;-&nbsp; by @abarke in https://github.com/vitest-dev/vitest/issues/2893 [<samp>(0fc08)</samp>](https://github.com/vitest-dev/vitest/commit/0fc08032) ### &nbsp;&nbsp;&nbsp;๐Ÿž Bug Fixes - Wait for console.log to print a message before terminating a worker &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2861 [<samp>(fbc54)</samp>](https://github.com/vitest-dev/vitest/commit/fbc54c91) - Cleanup last mocked cache when call vi.doMock &nbsp;-&nbsp; by @mysteryven in https://github.com/vitest-dev/vitest/issues/2872 [<samp>(65d71)</samp>](https://github.com/vitest-dev/vitest/commit/65d71b9e) - Reload changed configuration file on watch mode &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2889 [<samp>(4d277)</samp>](https://github.com/vitest-dev/vitest/commit/4d277d8d) - **coverage**: Custom providers to work inside worker threads &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2817 [<samp>(81604)</samp>](https://github.com/vitest-dev/vitest/commit/81604bce) ##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.28.5...v0.29.0)