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.
browser : Check fs access in builtin commands [backport to v3] - by @hi-ogawa , Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #10679 (b795e)
Pin last supported vite-node version - by @sheremet-va (16f12)
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
allowWrite and allowExec options to api [backport to v3] - by @hi-ogawa and Codex in https://github.com/vitest-dev/vitest/issues/10445 <samp>(af88b)</samp>cdp API when allowWrite/allowExec: false [backport to v3] - by @hi-ogawa and Codex in https://github.com/vitest-dev/vitest/issues/10456 <samp>(385a1)</samp>Use correct path for optimisation of strip-literal - by @mrginglymus in https://github.com/vitest-dev/vitest/issues/8139 (44940)
vitest run --watch should be watch-mode - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8128 <samp>(657e8)</samp>--shard x/<count> exceeds count of test files - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8112 <samp>(8a18c)</samp>minWorkers when only maxWorkers specified - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8110 <samp>(14dc0)</samp>task.meta should be available in custom reporter's errors - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8115 <samp>(27df6)</samp>browser: Use base url instead of __vitest__ - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8126 (1d8eb)
expect.any return type - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8129 <samp>(47514)</samp>process.send() - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8125 <samp>(dfe81)</samp>Support rolldown-vite - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7509 (c8d62)
createTesters call on the main thread - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8101 <samp>(142c7)</samp>vitest-browser-* packages - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8103 <samp>(247ef)</samp>toEqual - by @dubzzz in https://github.com/vitest-dev/vitest/issues/8094 <samp>(02ec8)</samp>dot reporter to work in non interactive terminals - by @bstephen1 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7994 <samp>(6db9f)</samp>Use sha1 instead of md5 for hashing - by @sheremet-va (e4c73)
DeeplyAllowMatchers - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8078 <samp>(30ab4)</samp>Deprecate workspace in favor of projects - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7923 (41beb)
ctx.signal - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7878 <samp>(e761f)</samp>test.name - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7809 <samp>(4af5d)</samp>vi.mockObject to automock any object - by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7761 <samp>(465bd)</samp>watchTriggerPatterns option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7778 <samp>(a0675)</samp>workspace in favor of projects - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7923 <samp>(41beb)</samp>sequence.groupOrder option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7852 <samp>(d1a1d)</samp>connect option for playwright browser provider - by @egfx-notifications and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7915 <samp>(029c0)</samp>screenshot.save option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7777 <samp>(d9f51)</samp>onWritePath option to github-actions - by @nwalters512 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8015 <samp>(abd3b)</samp>micromatch with picomatch - by @sapphi-red in https://github.com/vitest-dev/vitest/issues/7951 <samp>(df076)</samp>any types to AsymmetricMatcher<unknown>, with DeeplyAllowMatchers<T> - by @JoshuaKGoldberg in https://github.com/vitest-dev/vitest/issues/7016 <samp>(8ec44)</samp>stack properties - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7995 <samp>(330f9)</samp>toJSON serialisation - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8053 <samp>(3bdf0)</samp>upload files relative to the project root - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8042 <samp>(b9a31)</samp>this type to locators.extend - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8069 <samp>(70fb0)</samp>--silent values properly - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8055 <samp>(8fad7)</samp>@types/chai - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7937 <samp>(525f5)</samp>vitest list command - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7933 <samp>(ba6da)</samp>__vite_ssr_exportName__ - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7925 <samp>(76091)</samp>getWorkerMemoryLimit priority for vmForks - by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7960 <samp>(5a91e)</samp>Initial support for Temporal equality - by @dirkluijk in https://github.com/vitest-dev/vitest/issues/8007 (52bd7)
onWritePath option to github-actions - by @nwalters512 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8015 <samp>(abd3b)</samp>stack properties - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7995 <samp>(330f9)</samp>upload files relative to the project root - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8042 <samp>(b9a31)</samp>__vite_ssr_exportName__ - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7925 <samp>(76091)</samp>[!NOTE]
playwrightandpreviewstill scale it for better DX, but webdriver has fundamental issues with it. We are looking for a solution that works across all providers
Explicit Resource Management support in mocked functions - by @EskiMojo14 in https://github.com/vitest-dev/vitest/issues/7927 (b67d3)
sequence.groupOrder option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7852 <samp>(d1a1d)</samp>screenshot.save option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7777 <samp>(d9f51)</samp>micromatch with picomatch - by @sapphi-red in https://github.com/vitest-dev/vitest/issues/7951 <samp>(df076)</samp>any types to AsymmetricMatcher<unknown>, with DeeplyAllowMatchers<T> - by @JoshuaKGoldberg in https://github.com/vitest-dev/vitest/issues/7016 <samp>(8ec44)</samp>@types/chai - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7937 <samp>(525f5)</samp>vitest list command - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7933 <samp>(ba6da)</samp>getWorkerMemoryLimit priority for vmForks - by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7960 <samp>(5a91e)</samp>Deprecate workspace in favor of projects - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7923 (41beb)
ctx.signal - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7878 <samp>(e761f)</samp>test.name - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7809 <samp>(4af5d)</samp>vi.mockObject to automock any object - by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7761 <samp>(465bd)</samp>watchTriggerPatterns option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7778 <samp>(a0675)</samp>workspace in favor of projects - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7923 <samp>(41beb)</samp>connect option for playwright browser provider - by @egfx-notifications and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7915 <samp>(029c0)</samp>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/issu
Correctly resolve vitest import if inline: true is set - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7856 (a83f3)
inline: true is set - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7856 <samp>(a83f3)</samp>--merge-reports to show each total run times - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7877 <samp>(d613b)</samp>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/vit
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 <samp>(d9297)</samp>test.exclude when same object passed in coverage.exclude - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7774 <samp>(c3751)</samp>envionmentOptions - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7795 <samp>(67430)</samp>await profiler calls - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7763 <samp>(795a6)</samp>Report tests in correct order - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7752 (b166e)
Introduce %$ option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 (df347)
%$ option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 <samp>(df347)</samp>diff.maxDepth option and set non-Infinity value as a default to reduce crash - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7481 <samp>(eacab)</samp>test.each/for title formatting - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7522 <samp>(ea3d6)</samp>--configLoader CLI option - by @Carnageous and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7574 <samp>(2a852)</samp>vitest-browser-lit to vitest init browser and docs - by @EskiMojo14 and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7705 <samp>(5659a)</samp>and, or and filter locators - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7463 <samp>(63949)</samp>--silent=passed-only to log failed tasks only - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7530 <samp>(f9e1c)</samp>test.scoped to override test.extend fixtures per-suite - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7233 <samp>(e5851)</samp>context.skip(boolean) - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7659 <samp>(6adec)</samp>diff.expand: false as default - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7697 <samp>(f3420)</samp>--hideSkippedTests should hide suites too - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7695 <samp>(ba9b5)</samp>Add "configureVitest" plugin hook - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7349 (20a5d)
and, or and filter locators - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7463 <samp>(63949)</samp>test.scoped to override test.extend fixtures per-suite - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7233 <samp>(e5851)</samp>--hideSkippedTests should hide suites too - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7695 <samp>(ba9b5)</samp>Introduce %$ option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 (df347)
%$ option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 <samp>(df347)</samp>diff.maxDepth option and set non-Infinity value as a default to reduce crash - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7481 <samp>(eacab)</samp>test.each/for title formatting - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7522 <samp>(ea3d6)</samp>--silent=passed-only to log failed tasks only - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7530 <samp>(f9e1c)</samp>context.skip(boolean) - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7659 <samp>(6adec)</samp>Typings of ctx.skip() as never - by @sirlancelot in https://github.com/vitest-dev/vitest/issues/7608 (09f35)
ctx.skip() as never - by @sirlancelot in https://github.com/vitest-dev/vitest/issues/7608 <samp>(09f35)</samp>resolveConfig API - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7623 <samp>(db14a)</samp>toHaveBeenCalledWith(asymmetricMatcher) with undefined arguments - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7624 <samp>(0fb21)</samp>getState().testPath during collection with no isolation - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7640 <samp>(3fb3f)</samp>coverage.all - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7597 <samp>(422ba)</samp>buildStart - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7652 <samp>(29f5a)</samp>removeEventListener is bound to worker - by @joelgallant in https://github.com/vitest-dev/vitest/issues/7631 <samp>(ff42b)</samp>Fix fetch cache multiple writes - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7546 (1a8b4)
@vitest/spy - by @mrginglymus in https://github.com/vitest-dev/vitest/issues/7575 <samp>(7f7ff)</samp>beforeEach/All cleanup callback timeout - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7500 <samp>(0c292)</samp>Task.suite initialization - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7414 <samp>(ca9ff)</samp>buildStart on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7480 <samp>(c0f47)</samp>browser: Support webdriverio 9 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7553 (b1949)
Fix getMockedSystemTime for useFakeTimer - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7405 (03912)
getMockedSystemTime for useFakeTimer - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7405 <samp>(03912)</samp>queueMicrotask from default fake timers to not break node fetch - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7505 <samp>(167a9)</samp>tinyglobby instead of fast-glob - by @benmccann in https://github.com/vitest-dev/vitest/issues/7504 <samp>(b62ac)</samp>toHaveClass typing - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7383 <samp>(7ef23)</samp>maxWorkers - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7483 <samp>(adbb2)</samp>vite-node to pass correct execution wrapper offset - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7417 <samp>(1f2e5)</samp>inspect related cli options - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7373 <samp>(ed15b)</samp>Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964
This release includes security patches for:
Browser mode serves arbitrary files | CVE-2025-24963
This release includes security patches for:
development|production condition on Vites 6 by @hi-ogawa and @sheremet-va (#7301) <samp>(ef146)</samp>/__screenshot-error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7340 <samp>(ed9ae)</samp>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 (f
Don't await an empty timeout after every test - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7281 (ef1aa)
expect().resolves/rejects chain typings - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7273 <samp>(fa415)</samp>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://git
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…
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.
spy.mockReset changes - by @Lordfirespeed in https://github.com/vitest-dev/vitest/issues/6426 <samp>(db7a8)</samp>describe(..., { shuffle: boolean }) and inherit from parent suite - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6670 <samp>(aa1da)</samp>retry and repeats - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6817 <samp>(e8ce9)</samp>diff options and support printBasicPrototype - by @hi-ogawa, @sheremet-va and Michał Grzegorzewski in https://github.com/vitest-dev/vitest/issues/6740 <samp>(39186)</samp>ctx.skip() dynamically - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 <samp>(697c3)</samp>vitest/node entry point and statically on Vitest - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7029 <samp>(be8d4)</samp>diff.printBasicPrototype: false by default - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7043 <samp>(2b5c5)</samp>describe.for - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7253 <samp>(0ad28)</samp>actionTimeout as playwright provider options - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6984 <samp>(e2c29)</samp>userEvent.copy, cut, paste - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6769 <samp>(843a6)</samp>--project=!pattern - by @haines in https://github.com/vitest-dev/vitest/issues/6924 <samp>(ebfe9)</samp>thresholds to support maximum uncovered items - by @jonahkagan in https://github.com/vitest-dev/vitest/issues/7061 <samp>(bde98)</samp>toHaveBeenCalledExactlyOnceWith expect matcher - by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 <samp>(ff662)</samp>toHaveBeenCalledAfter and toHaveBeenCalledBefore utility - by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 <samp>(85e6f)</samp>toSatisfy asymmetric matcher - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7022 <samp>(f691a)</samp>toBeOneOf matcher - by @zirkelc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6974 <samp>(3d742)</samp>summary option for verbose and default reporters - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 <samp>(511b7)</samp>provide - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 <samp>(85c64)</samp>config to resolveSnapshotPath - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 <samp>(746d8)</samp>coverageMap in json report - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 <samp>(9c8f7)</samp>onTestsRerun method to global setup context - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 <samp>(e26e0)</samp>cacheDir when optimizer is enabled - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 <samp>(0b08b)</samp>finally in case there is an error to avoid it getting stuck - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6951 <samp>(02194)</samp>Custom type internally - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7032 <samp>(7957f)</samp>cancelCurrentRun awaits runningPromise - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7168 <samp>(1dbf5)</samp>getMockImplementation to return "once" implementation - by @chaptergy in https://github.com/vitest-dev/vitest/issues/7033 <samp>(39125)</samp>capturePrintError logger duplicate event handlers - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7197 <samp>(e89c3)</samp>vitest/reporters entrypoint - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7241 <samp>(aec0b)</samp>forks pool - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7090 <samp>(8cab9)</samp>VitestRunner type from vitest/runners - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7240 <samp>(9b218)</samp>vitest list - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7257 <samp>(1c2b2)</samp>log-update - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7019 <samp>(6d23f)</samp>vi.mock is present - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 <samp>(8d179)</samp>entries in the browser mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7167 <samp>(423d6)</samp>console.time with fake timers - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7207 <samp>(903f3)</samp>isolate: false is used - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6957 <samp>(426ce)</samp>dot reporter without log-update - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6943 <samp>(be969)</samp>--hideSkippedTests in base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6988 <samp>(721a5)</samp>retry and repeats counts - by @AriPerkkio and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7004 <samp>(3496a)</samp>describe.todo as 'todo' - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7171 <samp>(1d458)</samp>toMatchFileSnapshot - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7156 <samp>(a437b)</samp>toMatchSnapshot("...") - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7126 <samp>(ac9ba)</samp>@ts-expect-error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7125 <samp>(27d34)</samp>extends: true correctly inherits all root config properties - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7232 <samp>(798c0)</samp>deps: Update fake-timers to v14.0.0 - by @xxzefgh and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7097 (c98b4)
userEvent.copy, cut, paste - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6769 <samp>(843a6)</samp>cancelCurrentRun awaits runningPromise - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7168 <samp>(1dbf5)</samp>getMockImplementation to return "once" implementation - by @chaptergy in https://github.com/vitest-dev/vitest/issues/7033 <samp>(39125)</samp>log-update - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7019 <samp>(6d23f)</samp>entries in the browser mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7167 <samp>(423d6)</samp>describe.todo as 'todo' - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7171 <samp>(1d458)</samp>toMatchFileSnapshot - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7156 <samp>(a437b)</samp>toMatchSnapshot("...") - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7126 <samp>(ac9ba)</samp>@ts-expect-error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7125 <samp>(27d34)</samp>Support Vite v6 in mocker package - by @cexbrayat in https://github.com/vitest-dev/vitest/issues/7058 (96f47)
thresholds to support maximum uncovered items - by @jonahkagan in https://github.com/vitest-dev/vitest/issues/7061 <samp>(bde98)</samp>toBeOneOf matcher - by @zirkelc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6974 <samp>(3d742)</samp>expect: Check more properties for error equality - by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/5876 (10023)
vitest/node entry point and statically on Vitest - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7029 <samp>(be8d4)</samp>diff.printBasicPrototype: false by default - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7043 <samp>(2b5c5)</samp>toSatisfy asymmetric matcher - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7022 <samp>(f691a)</samp>isolate: false is used - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6957 <samp>(426ce)</samp>Print a deprecation warning if suite or test uses object as the third argument - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7031 (…
We decided to skip Vitest 2.2 and release Vitest 3 with support for Vite 6 instead. There will be no more Vitest 2 versions. Vitest 3 is the first version that supports Vite 6 (excluding 2.1.6). We aim to have a stable release in January.
Vitest 3 is our first step to standardising the public Node.js API. We plan to remove the experimental tag from the current APIs in Vitest 3.1 - the API will follow semver after that.
spy.mockReset changes - by @Lordfirespeed in https://github.com/vitest-dev/vitest/issues/6426 <samp>(db7a8)</samp>describe(..., { shuffle: boolean }) and inherit from parent suite - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6670 <samp>(aa1da)</samp>retry and repeats - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6817 <samp>(e8ce9)</samp>diff options and support printBasicPrototype - by @hi-ogawa, @sheremet-va and Michał Grzegorzewski in https://github.com/vitest-dev/vitest/issues/6740 <samp>(39186)</samp>ctx.skip() dynamically - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 <samp>(697c3)</samp>actionTimeout as playwright provider options - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6984 <samp>(e2c29)</samp>--project=!pattern - by @haines in https://github.com/vitest-dev/vitest/issues/6924 <samp>(ebfe9)</samp>toHaveBeenCalledExactlyOnceWith expect matcher - by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 <samp>(ff662)</samp>toHaveBeenCalledAfter and toHaveBeenCalledBefore utility - by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 <samp>(85e6f)</samp>summary option for verbose and default reporters - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 <samp>(511b7)</samp>provide - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 <samp>(85c64)</samp>config to resolveSnapshotPath - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 <samp>(746d8)</samp>coverageMap in json report - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 <samp>(9c8f7)</samp>onTestsRerun method to global setup context - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 <samp>(e26e0)</samp>cacheDir when optimizer is enabled - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 <samp>(0b08b)</samp>finally in case there is an error to avoid it getting stuck - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6951 <samp>(02194)</samp>Custom internally - by @sheremet-va <samp>(46fc5)</samp>vi.mock is present - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 <samp>(8d179)</samp>dot reporter without log-update - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6943 <samp>(be969)</samp>--hideSkippedTests in base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6988 <samp>(721a5)</samp>retry and repeats counts - by @AriPerkkio and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7004 <samp>(3496a)</samp>reporter: Add support for function type to classname option in the junit reporter - by @jpleclerc, Jean-Philippe Leclerc and @hi-ogawa in https://gith
summary option for verbose and default reporters - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 <samp>(511b7)</samp>cacheDir when optimizer is enabled - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 <samp>(0b08b)</samp>Support inline diff options and support printBasicPrototype - by @hi-ogawa, @sheremet-va and Michał Grzegorzewski in https://github.com/vitest-dev/vit
diff options and support printBasicPrototype - by @hi-ogawa, @sheremet-va and Michał Grzegorzewski in https://github.com/vitest-dev/vitest/issues/6740 <samp>(39186)</samp>ctx.skip() dynamically - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 <samp>(697c3)</samp>toHaveBeenCalledExactlyOnceWith expect matcher - by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 <samp>(ff662)</samp>toHaveBeenCalledAfter and toHaveBeenCalledBefore utility - by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 <samp>(85e6f)</samp>provide - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 <samp>(85c64)</samp>config to resolveSnapshotPath - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 <samp>(746d8)</samp>coverageMap in json report - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 <samp>(9c8f7)</samp>onTestsRerun method to global setup context - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 <samp>(e26e0)</samp>vi.mock is present - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 <samp>(8d179)</samp>Browser mode serves arbitrary files | CVE-2025-24963
This release includes security patches for:
/__screenshot-error - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7343Support Node 21 - by @sheremet-va (92f7a)
This introduced some breaking changes (https://github.com/vitest-dev/vitest/issues/6992). We will enable support for it later. In the meantime, you ca…
pnpm.overrides or yarn resolutions to override the vite version in the vitest package - the APIs are compatible.## 🚀 Features - Support Vite 6 ##### View changes on GitHub
dangerouslyIgnoreUnhandledErrors without base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6808 (0bf0a)
dangerouslyIgnoreUnhandledErrors without base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6808 <samp>(0bf0a)</samp>unhandledRejection even when base reporter is not used - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6812 <samp>(8878b)</samp>sequence.concurrent from the RuntimeConfig type - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6880 <samp>(6af73)</samp>.poll, .element, .rejects/.resolves, and locator.* weren't awaited - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6877 <samp>(93b67)</samp>enter or 'a' - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6848 <samp>(487c8)</samp>_This patch release includes a non-breaking feature for the experimental Browser Mode that doesn't follow SemVer. If you want to avoid picking up rele
This patch release includes a non-breaking feature for the experimental Browser Mode that doesn't follow SemVer. If you want to avoid picking up releases like this, make sure to pin the Vitest version in your package.json. See npm's documentation about semver for more information.
transformIndexHtml - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6725 <samp>(16902)</samp>v= queries to setup files imports - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6759 <samp>(b8258)</samp>toThrowError with empty string parameter - by @shulaoda in https://github.com/vitest-dev/vitest/issues/6710 <samp>(a6129)</samp>test.extend type exports - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6707 <samp>(e5c38)</samp>hash to replace createHash - by @btea in https://github.com/vitest-dev/vitest/issues/6703 <samp>(5d07b)</samp>Deprecate UserConfig in favor of ViteUserConfig - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6626 (496bd)
toBeNaN, toBeUndefined, toBeNull, toBeTruthy, toBeFalsy - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6697 <samp>(e0027)</samp>/mockServiceWorker.js instead of /__vitest_msw__ - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6687 <samp>(4b2ce)</samp>toMatchObject diff - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6620 <samp>(d289e)</samp><empty line> logs when interleaving console.log/error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6644 <samp>(9ece3)</samp>fast-glob instead of tinyglobby in Vitest - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6688 <samp>(70baa)</samp>Move Vitest.setServer to post configureServer hook to enable import analysis for workspace config loading - by @hi-ogawa in https://github.com/vitest-
Vitest.setServer to post configureServer hook to enable import analysis for workspace config loading - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6584 <samp>(e7f35)</samp>BenchmarkResult.samples array to reduce memory usage - by @hi-ogawa and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6541 <samp>(a6407)</samp>data: protocol on preview provider file upload - by @userquin in https://github.com/vitest-dev/vitest/issues/6501 <samp>(e9821)</samp>*.astro by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6565 <samp>(f8ff7)</samp>cleanOnRerun: false to invalidate previous results - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6592 <samp>(88bde)</samp>toBeDefined with expect.poll - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6562 <samp>(f7da6)</samp>--cpu-prof and --heap-prof not working by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/pull/6555 <samp>(2e4d894)</samp>beforeAll failed - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6524 <samp>(fb797)</samp>onTestFinished and onTestFailed during retry and repeats - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6609 <samp>(c5e29)</samp>--standalone - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6577 <samp>(d0bf8)</samp>Make example test callbacks async - by @aqandrew in https://github.com/vitest-dev/vitest/issues/6484 (16aa7)
This release makes another big change to the Browser Mode by introducing locators API:
This release makes another big change to the Browser Mode by introducing locators API:
test('renders blog posts', async () => {
const screen = page.render(<Blog />)
await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument()
const [firstPost] = screen.getByRole('listitem').all()
await firstPost.getByRole('button', { name: 'Delete' }).click()
expect(screen.getByRole('listitem').all()).toHaveLength(3)
})
You can use either vitest-browser-vue, vitest-browser-svelte or vitest-browser-react to render components and make assertions using locators. Locators are also available on the page object from @vitest/browser/context.
vitest.config.ts or vite.config.ts inside the folder)projects/* will match anything inside the projects folder. If it's a folder, we try to find the config inside that folder (if there is none, it is still treated as a project with the default config). If it's a file, it will be treated as a Vitest config. projects/**/* previously would assume that you only wanted to have folders as projects, but now it will match every single file insideprojects.userEvent.upload in playwright provider - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6442 <samp>(cf148)</samp>--inspect - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6433 <samp>(0499a)</samp>--inspect-brk - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6434 <samp>(7ab0f)</samp>--exclude-after-remap - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6309 <samp>(5932a)</samp>{ spy: true } instead of a factory - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6289 <samp>(95f02)</samp>vi.advanceTimersToNextFrame - by @bnjm and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6347 <samp>(8ff63)</samp>fast-glob to tinyglobby - by @SuperchupuDev in https://github.com/vitest-dev/vitest/pull/6274 <samp>(c321a)</samp>index file - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6266 <samp>(081cf)</samp>expect.getState().testPath always returns correct path - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6472 <samp>(ac698)</samp>vitest and @vitest/* versions don't match - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6317 <samp>(e662c)</samp>vitenode for uncovered files - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6044 <samp>(da52d)</samp>performance.now instead of Date.now for duration - by @LuciNyan in https://github.com/vitest-dev/vitest/issues/6382 <samp>(fe489)</samp>toMatchInlineSnapshot updates at the same location - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6332 <samp>(1606f)</samp>typecheck.include overlaps with include - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6256 <samp>(153ff)</samp>Support userEvent.upload in playwright provider - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6442 (cf148)
userEvent.upload in playwright provider - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6442 <samp>(cf148)</samp>--inspect - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6433 <samp>(0499a)</samp>--inspect-brk - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6434 <samp>(7ab0f)</samp>{ spy: true } instead of a factory - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6289 <samp>(95f02)</samp>performance.now instead of Date.now for duration - by @LuciNyan in https://github.com/vitest-dev/vitest/issues/6382 <samp>(fe489)</samp>Make spec into a class instead of a tuple - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6355 (874a1)
--exclude-after-remap - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6309 <samp>(5932a)</samp>vi.advanceTimersToNextFrame - by @bnjm and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6347 <samp>(8ff63)</samp>vitenode for uncovered files - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6044 <samp>(da52d)</samp>toMatchInlineSnapshot updates at the same location - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6332 <samp>(1606f)</samp>typecheck.include overlaps with include - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6256 <samp>(153ff)</samp>vitest: Add "provide" option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6253 (4409d)
@testing-library/framework packages <samp>(d79511)</samp>
testing-library that relies solely on querySelector and closest.click/.fill and other userEvent methodsvitest and @vitest/* versions don't match - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6317 <samp>(e662c)</samp>browser: Keep querying elements even if locator is created with elementLocator, add pubic @vitest/browser/utils - by @sheremet-va in https://github.co
browser: Use documentElement as the root for selector - by @sheremet-va (d8077)
*No significant changes* ##### View changes on GitHub
No significant changes
Move page.config to server.config, add more docs - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6252 (af2b8)
index file - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6266 <samp>(081cf)</samp>Introduce experimental reported tasks - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6149 (13d85)
testNamePattern adds leading space - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6186 <samp>(073a5)</samp>afterEach cleanup hooks in node entrypoint - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6192 <samp>(e6fbc)</samp>defineProject and defineWorkspace types - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6198 <samp>(8cd82)</samp>node:* imports in __mocks__ folder - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6204 <samp>(a48be)</samp>One-line environment options - by @hahanein in https://github.com/vitest-dev/vitest/issues/5105 (38269)
require - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6159 <samp>(807a2)</samp>*.cts files - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6189 <samp>(5da45)</samp>thresholds.<glob>.100 option - by @thor-juhasz and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6174 <samp>(f6845)</samp>mockImplementation for function overload and unions - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6181 <samp>(7a75b)</samp>ui: Show all suites/tests when parent matches - by @userquin in https://github.com/vitest-dev/vitest/issues/6106 (840e0)
--inspect-brk stop on Windows - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6110 <samp>(f8519)</samp>vi.spyOn to MockInstance of function overload - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6086 <samp>(e9f9a)</samp>Remove @vitest/runner > pretty-format from prebundling because it doesn't exist - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6075
crypto.randomUUID from the client - by @userquin in https://github.com/vitest-dev/vitest/issues/6079 <samp>(04c83)</samp>vitest - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6060 <samp>(95a2d)</samp>browser: Correctly inherit browser config in a workspace - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6054 (4b03e)
Update vulnerable test-exclude to v7 - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5867 (0a715)
Vitest 2.0 is here! This release page lists all changes made to the project during the beta. For the migration guide, please refer to the documentation.
--segfault-retry - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5514 <samp>(ed60e)</samp>
threads segfaults. Our current recommendation is to use the new default forks pool instead.onTestFinished hook. This can make your tests run a little bit slower.coverage.ignoreEmptyLines by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5543 <samp>(31994)</samp>
location field pointed to the error location instead of the test location. Now it is aligned with jest and contains the line and column of a test function, but requires includeTaskLocation to be enabled.pool to 'forks' - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5047 <samp>(7f8f9)</samp>
threads pool: https://vitest.dev/guide/improving-performance.html#pool--merge-reports to support coverage - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5736 <samp>(b7438)</samp>spy.mock.returns. If the function is async or returns a promise, it will always succeed and have a Promise in results. To make migration easier, we introduced spy.mock.settledResults that unwraps promises and expect().toHaveResolved() matcher that accepts unwrapped value.json output - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5802 <samp>(dd754)</samp>indexScripts to orchestratorScripts in the browser config - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5842 <samp>(49f34)</samp>pool API - now requires collectTests method alongside runTests.exclude in coverage - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5997 <samp>(169bc)</samp>
exclude patterns if coverage.exclude was overridden in the config. Add your test patterns manually, or merge your overrides with default ones: ['**/my-pattern.js', ...coverageConfigDefaults.exclude]. See https://vitest.dev/config/#coverage-exclude for an example.process.exit if workspace project failed to be created - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5804 <samp>(a820e)</samp>process.exit manually - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5926 <samp>(e9b63)</samp><img width="1392" alt="Running tresjs example in Vitest BrowserMode" src="https://github.com/vitest-dev/vitest/assets/16173870/3b6bc721-b194-416d-a685-cf7282ee802a">
click event - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5777 <samp>(839c3)</samp>page.screenshot method - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5853 <samp>(81c42)</samp>userEvent methods, add fill and dragAndDrop events - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5882 <samp>(4dbea)</samp>expect.dom method and bundle jest-dom matchers with @vitest/browser - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5910 <samp>(3a96a)</samp>tripleClick to interactive api - by @userquin in https://github.com/vitest-dev/vitest/issues/5987 <samp>(200a4)</samp>--reporter=blob flag to generate reports and combine them with vitest --merge-reports later!--output-json - by @Joristdh in https://github.com/vitest-dev/vitest/issues/5745 <samp>(0766b)</samp>parseAst, parseAstAsync from vite - by @sheremet-va <samp>(f645e)</samp>test.for - by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/5861 <samp>(c2380)</samp>--exclude option - by @fregante in https://github.com/vitest-dev/vitest/issues/5782 <samp>(d6700)</samp>project.provide type - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5959 <samp>(0eda9)</samp>preview provider when running in StackBlitz - by @userquin in https://github.com/vitest-dev/vitest/issues/5836 <samp>(76e13)</samp>coverage.reporter from string values - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5920 <samp>(f33da)</samp>thresholds.autoUpdate to support mergeConfig - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5818 <samp>(7afb3)</samp>stderr of startVitest() - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5954 <samp>(70805)</samp>else - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6014 <samp>(368c1)</samp>test-exclude to v7 - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5867 <samp>(0a715)</samp>poolOptions.<name>.isolate from forks options - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5840 <samp>(a60a1)</samp>toMatchFileSnapshot with empty file - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/5894 <samp>(88006)</samp>FileDetails title status icon not being updated - by @userquin in https://github.com/vitest-dev/vitest/issues/5942 <samp>(e9ddf)</samp>VITE_ - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6017 <samp>(d87be)</samp>provide to the public API - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5897 <samp>(66e64)</samp>vitest: Add "vitest list" API to print collected tests without running them - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6013 (583
parseAst, parseAstAsync from vite - by @sheremet-va <samp>(f645e)</samp>tripleClick to interactive api - by @userquin in https://github.com/vitest-dev/vitest/issues/5987 <samp>(200a4)</samp>exclude - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5997 <samp>(169bc)</samp>else - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6014 <samp>(368c1)</samp>VITE_ - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6017 <samp>(d87be)</samp>Introduce expect.dom method and bundle jest-dom matchers with @vitest/browser - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5910 (3
expect.dom method and bundle jest-dom matchers with @vitest/browser - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5910 <samp>(3a96a)</samp>project.provide type - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5959 <samp>(0eda9)</samp>stderr of startVitest() - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5954 <samp>(70805)</samp>FileDetails title status icon not being updated - by @userquin in https://github.com/vitest-dev/vitest/issues/5942 <samp>(e9ddf)</samp>Image type add bmp - by @btea in https://github.com/vitest-dev/vitest/issues/5921 (98f9b)
userEvent methods, add fill and dragAndDrop events - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5882 <samp>(4dbea)</samp>coverage.reporter from string values - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/5920 <samp>(f33da)</samp>toMatchFileSnapshot with empty file - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/5894 <samp>(88006)</samp>provide to the public API - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/5897 <samp>(66e64)</samp>Your coding agent can read these notes before it upgrades. Set up the MCP server →