Releases: vitest-dev/vitest
Releases · vitest-dev/vitest
v3.0.2
🐞 Bug Fixes
- Don't await an empty timeout after every test - by @sheremet-va in #7281 (ef1aa)
- expect: Fix
expect().resolves/rejects
chain typings - by @hi-ogawa in #7273 (fa415)
View changes on GitHub
v3.0.1
🐞 Bug Fixes
- Revert "fix: re-apply default conditions if using vite 6 or later (#7071)" - by @sheremet-va in #7071 and #7271 (755ec)
- deps: Update all non-major dependencies - by @sheremet-va in #7147 (537fa)
View changes on GitHub
v3.0.0
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 Changes
spy.mockReset
changes - by @Lordfirespeed in #6426 (db7a8)- Pass down context to test hooks - by @sheremet-va in #7034 (82c2e)
- Support Vite 6 - by @sheremet-va in #7026 (7abe8)
- coverage: Always exclude test files - by @AriPerkkio in #7254 (b5268)
- deps: Update fake-timers to v14.0.0 - by @xxzefgh and @hi-ogawa in #7097 (c98b4)
- expect: Check more properties for error equality - by @hi-ogawa and @sheremet-va in #5876 (10023)
- runner: Support
describe(..., { shuffle: boolean })
and inherit from parent suite - by @hi-ogawa in #6670 (aa1da) - snapshot: Reset snapshot state for
retry
andrepeats
- by @hi-ogawa in #6817 (e8ce9) - spy: SpyOn reuses mock if method is already spyed on - by @sheremet-va and @hi-ogawa in #6464 (b3e43)
- vitest: Don't expose default toFake config - by @sheremet-va in #6288 (e3144)
🚀 Features
- Support inline
diff
options and supportprintBasicPrototype
- by @hi-ogawa, @sheremet-va and Michał Grzegorzewski in #6740 (39186) - Allow a custom note when calling
ctx.skip()
dynamically - by @sheremet-va in #6805 (697c3) - Allow inline workspace configuration - by @sheremet-va in #6923 (562e1)
- Provide the current project to the global setup - by @sheremet-va in #6942 (a5bbc)
- Print project name as a label - by @sheremet-va in #6925 (a3bef)
- Print a deprecation warning if suite or test uses object as the third argument - by @sheremet-va in #7031 (407f1)
- Expose versions from
vitest/node
entry point and statically on Vitest - by @sheremet-va in #7029 (be8d4) diff.printBasicPrototype: false
by default - by @hi-ogawa in #7043 (2b5c5)- Prepare the Vitest API to be stable - by @sheremet-va in #6962 (9a1b5)
- Support Vite v6 in mocker package - by @cexbrayat in #7058 (96f47)
- Allow multi-browser configuration - by @sheremet-va in #6975 (78b62)
- Add resolved project names to the reporter API - by @userquin in #7213 (91758)
- Introduce the new reporter API - by @sheremet-va and @AriPerkkio in #7069 (76662)
- Add
describe.for
- by @hi-ogawa in #7253 (0ad28) - api:
- Add onBrowserInit event - by @sheremet-va in #7255 (80ce0)
- browser:
- cli:
- coverage:
thresholds
to support maximum uncovered items - by @jonahkagan in #7061 (bde98)
- expect:
- Add
toHaveBeenCalledExactlyOnceWith
expect matcher - by @jacoberdman2147 and @sheremet-va in #6894 (ff662) - Add
toHaveBeenCalledAfter
andtoHaveBeenCalledBefore
utility - by @Barbapapazes and @sheremet-va in #6056 (85e6f) - Add
toSatisfy
asymmetric matcher - by @hi-ogawa in #7022 (f691a) - Add
toBeOneOf
matcher - by @zirkelc and @hi-ogawa in #6974 (3d742)
- Add
- reporter:
- Add support for function type to classname option in the junit reporter - by @jpleclerc, Jean-Philippe Leclerc and @hi-ogawa in #6839 (dc238)
- reporters:
summary
option forverbose
anddefault
reporters - by @AriPerkkio in #6893 (511b7)
- runner:
- Test context can inject values from the config's
provide
- by @sheremet-va in #6813 (85c64) - Add "queued" state - by @sheremet-va and @AriPerkkio in #6931 (5f8d2)
- Test context can inject values from the config's
- snapshot:
- ui:
- Allow run individual tests/suites from the UI - by @userquin in #6641 (d9cc8)
- Make clicking on a test in the UI open the report section and scroll to the test failure if applicable - by @jacoberdman2147 in #6900 (1bf27)
- Allow hide/show node_modules in module graph tab - by @userquin in #7217 (50cf6)
- vitest:
- Include
coverageMap
in json report &nb...
- Include
v3.0.0-beta.4
🚨 Breaking Changes
🚀 Features
- browser:
🐞 Bug Fixes
- Fix missing chai types - by @hi-ogawa in #7149 (6a09c)
cancelCurrentRun
awaitsrunningPromise
- by @sheremet-va in #7168 (1dbf5)- Add Locator typings for nth, first and last. - by @xeger in #7176 (d262e)
- Batch console logs by microtask - by @hi-ogawa in #7183 (53d1d)
- Allow
getMockImplementation
to return "once" implementation - by @chaptergy in #7033 (39125) - benchmark:
- Rewrite reporter without
log-update
- by @AriPerkkio in #7019 (6d23f)
- Rewrite reporter without
- browser:
- Fix provider options types - by @hi-ogawa in #7115 (579bd)
- Only use locator.element on last expect.element attempt - by @tsirlucas in #7139 and #7152 (847d3)
- Use correct project when filtering
entries
in the browser mode - by @sheremet-va in #7167 (423d6)
- coverage:
- Prevent crash when v8 incorrectly merges static_initializer's - by @AriPerkkio in #7150 (cb6db)
- deps:
- diff:
- runner:
- Mark tests of
describe.todo
as'todo'
- by @AriPerkkio in #7171 (1d458)
- Mark tests of
- snapshot:
- typecheck:
- vite-node:
View changes on GitHub
v3.0.0-beta.3
🚀 Features
- Support Vite v6 in mocker package - by @cexbrayat in #7058 (96f47)
- Allow multi-browser configuration - by @sheremet-va in #6975 (78b62)
- coverage:
thresholds
to support maximum uncovered items - by @jonahkagan in #7061 (bde98) - expect: Add
toBeOneOf
matcher - by @zirkelc and @hi-ogawa in #6974 (3d742) - runner: Add "queued" state - by @sheremet-va and @AriPerkkio in #6931 (5f8d2)
🐞 Bug Fixes
- Don't use dim color for passed tests - by @sheremet-va in #7059 (8a6f5)
- benchmark: Disable type testing while benchmarking - by @AriPerkkio in #7068 (4e603)
- deps: Update all non-major dependencies - in #7085 (8cc92)
View changes on GitHub
v3.0.0-beta.2
🚨 Breaking Changes
- expect: Check more properties for error equality - by @hi-ogawa and @sheremet-va in #5876 (10023)
- spy: SpyOn reuses mock if method is already spyed on - by @sheremet-va and @hi-ogawa in #6464 (b3e43)
🚀 Features
- Expose versions from
vitest/node
entry point and statically on Vitest - by @sheremet-va in #7029 (be8d4) diff.printBasicPrototype: false
by default - by @hi-ogawa in #7043 (2b5c5)- Prepare the Vitest API to be stable - by @sheremet-va in #6962 (9a1b5)
- cli: Support location filters for suites - by @mzhubail in #7048 (751e2)
- expect: Add
toSatisfy
asymmetric matcher - by @hi-ogawa in #7022 (f691a) - ui: Make clicking on a test in the UI open the report section and scroll to the test failure if applicable - by @jacoberdman2147 in #6900 (1bf27)
🐞 Bug Fixes
- Persist cli filters as watch mode file filter - by @hi-ogawa in #6955 (cc703)
- browser: Fix user event state on preview provider - by @hi-ogawa in #7041 (8e944)
- coverage: Correct coverage when
isolate: false
is used - by @AriPerkkio in #6957 (426ce) - runner: Long synchronous tasks does not time out - by @ferdodo and @sheremet-va in #2920 and #6944 (2fb58)
View changes on GitHub
v3.0.0-beta.1
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.
🚨 Breaking Changes
spy.mockReset
changes - by @Lordfirespeed in #6426 (db7a8)- Pass down context to test hooks - by @sheremet-va in #7034 (82c2e)
- Support Vite 6 - by @sheremet-va in #7026 (7abe8)
- runner: Support
describe(..., { shuffle: boolean })
and inherit from parent suite - by @hi-ogawa in #6670 (aa1da) - snapshot: Reset snapshot state for
retry
andrepeats
- by @hi-ogawa in #6817 (e8ce9) - vitest: Don't expose default toFake config - by @sheremet-va in #6288 (e3144)
🚀 Features
- Support inline
diff
options and supportprintBasicPrototype
- by @hi-ogawa, @sheremet-va and Michał Grzegorzewski in #6740 (39186) - Allow a custom note when calling
ctx.skip()
dynamically - by @sheremet-va in #6805 (697c3) - Allow inline workspace configuration - by @sheremet-va in #6923 (562e1)
- Provide the current project to the global setup - by @sheremet-va in #6942 (a5bbc)
- Print project name as a label - by @sheremet-va in #6925 (a3bef)
- Print a deprecation warning if suite or test uses object as the third argument - by @sheremet-va in #7031 (407f1)
- browser:
- cli:
- expect:
- Add
toHaveBeenCalledExactlyOnceWith
expect matcher - by @jacoberdman2147 and @sheremet-va in #6894 (ff662) - Add
toHaveBeenCalledAfter
andtoHaveBeenCalledBefore
utility - by @Barbapapazes and @sheremet-va in #6056 (85e6f)
- Add
- reporter:
- Add support for function type to classname option in the junit reporter - by @jpleclerc, Jean-Philippe Leclerc and @hi-ogawa in #6839 (dc238)
- reporters:
summary
option forverbose
anddefault
reporters - by @AriPerkkio in #6893 (511b7)
- runner:
- Test context can inject values from the config's
provide
- by @sheremet-va in #6813 (85c64)
- Test context can inject values from the config's
- snapshot:
- ui:
- vitest:
- Include
coverageMap
in json report - by @sheremet-va in #6606 (9c8f7) - Add
onTestsRerun
method to global setup context - by @sheremet-va in #6803 (e26e0)
- Include
🐞 Bug Fixes
- Misc fix for vite 6 ecosystem ci - by @hi-ogawa in #6867 (80f8b)
- Respect
cacheDir
when optimizer is enabled - by @hi-ogawa in #6910 (0b08b) - Reset runningPromise after
finally
in case there is an error to avoid it getting stuck - by @sheremet-va in #6951 (02194) - Support Node 21 - by @sheremet-va (92f7a)
- Don't use
Custom
internally - by @sheremet-va (46fc5) - browser:
- Improve source maps when
vi.mock
is present - by @sheremet-va in #6810 (8d179) - Explain TypeScript support in docs and add asymmetric matchers to types - by @sheremet-va in #6934 (ac1a7)
- Fix matchers.d.ts - by @hi-ogawa in #6995 (a485b)
- Improve source maps when
- coverage:
- Exclude browser mode iframe results - by @AriPerkkio in #6905 (e04a1)
- junit:
- Fix testsuites time to be sum of all testsuite items - by @saitonakamura in #6985 (ca37a)
- pretty-format:
- reporters:
- Write buffered stdout/stderr on process exit - by @AriPerkkio in #6932 (80cde)
- Rewrite
dot
reporter withoutlog-update
- by @AriPerkkio in #6943 (be969) - Check
--hideSkippedTests
in base reporter - by @AriPerkkio in #6988 (721a5) - Show
retry
andrepeats
counts - by @AriPerkkio and @hi-ogawa in #7004 (3496a)
- typecheck:
- types:
- Make parameters non-nullable for Playwright options - by @apple-yagi in #6989 (fe2a1)
- vite-node:
View changes on GitHub
v2.1.8
v2.1.7
🐞 Bug Fixes
- Revert support for Vite 6 - by @sheremet-va (fbe5c)
- This introduced some breaking changes (#6992). We will enable support for it later. In the meantime, you can still use
pnpm.overrides
or yarn resolutions to override thevite
version in thevitest
package - the APIs are compatible.
- This introduced some breaking changes (#6992). We will enable support for it later. In the meantime, you can still use