NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #616 most downloaded on npm
Vitest test runner
Last release 1 months ago
18 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
194 releases · first in 2023
One column per quarter.
Import @vite/client in browser code for handling optimizer - by @sheremet-va (20c51)
Bundle UI with @vitest/browser - by @sheremet-va (14091)
browser: Relax vitest peer dependency - by @cexbrayat in https://github.com/vitest-dev/vitest/issues/3039 (865d1)
--test-timeout CLI argument - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3019 (63c62)
--test-timeout CLI argument - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3019 <samp>(63c62)</samp>Use custom colors implementation instead of picocolors - by @sheremet-va (427b0)
any as default value for TArgs in vi.fn() - by @jessevanassen in https://github.com/vitest-dev/vitest/issues/2947 <samp>(1bdcc)</samp>Optimize dependencies in setup files - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2935 (c169f)
Wait for optimized dependency to be bundled in non-pnpm package managers - by @sheremet-va (d2460)
One of the breaking changes includes adding a link to snapshots inside snapshot files, meaning you will need to update all your snapshots.
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 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.
NODE_V8_COVERAGE - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/2786 <samp>(095c6)</samp>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.chid_process might run longer due to the communication overhead. If you want to restore the previous behavior, use --single-thread.Add --script option to vite-node - by @jgoux and @dammy001 in https://github.com/vitest-dev/vitest/issues/2793 (d3d6b)
Setup correct utils inside asymmetric matchers - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2768 (415c8)
onWatcherStart when typecheck.ignoreSourceErrors is true - by @mascii and @sheremet-va in https://github.com/vitest-dev/vitest/issues/2774 <samp>(d612e)</samp>Allow using atomics to communicate between threads - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2758 (3679c)
config option to be false - by @antfu in https://github.com/vitest-dev/vitest/issues/2749 <samp>(c66e3)</samp>Send stderr header log to stderr - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2736 (998ea)
timestamp: 0 - by @danielroe in https://github.com/vitest-dev/vitest/issues/2747 <samp>(e88c0)</samp>Remove UI from Vitest dependencies - by @sheremet-va (b120c)
Don't rely on environment for interopDefault - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/2682 (3f20c)
@vitet/runner package instead of vitestYour coding agent can read these notes before it upgrades. Set up the MCP server →