Releases: vitest-dev/vitest
Releases · vitest-dev/vitest
v2.1.0-beta.1
🚀 Features
- browser:
- Move page.config to server.config, add more docs - by @sheremet-va in #6252 (af2b8)
- Make iframe scalable, improve documentation - by @sheremet-va in #6257 (74ca1)
- Introduce built-in locators - by @sheremet-va in #6084 (3347f)
🐞 Bug Fixes
- Correctly resolve nested mocks with
index
file - by @sheremet-va in #6266 (081cf) - Don't panic when coverage.reporter is a string - by @sheremet-va in #6267 (7b37d)
- browser: Print correct stack trace for unhandled errors - by @sheremet-va in #6134 (1da6c)
- vite-node: Disable watcher if hmr is disabled - by @sheremet-va in #6251 (c51c6)
- vitest: Update json reporter output - by @Emiyaaaaa in #6064 (c9979)
View changes on GitHub
v2.0.5
🚀 Features
- Introduce experimental reported tasks - by @sheremet-va in #6149 (13d85)
- This is part of the experimental API and doesn't follow semver. We are hoping to stabilize it for 2.1. If you are working with custom reporters, give this a go!
🐞 Bug Fixes
- Show a difference between string characters if both values are strings - by @sheremet-va in #6191 (29176)
testNamePattern
adds leading space - by @AriPerkkio in #6186 (073a5)- browser:
- Don't bundle
afterEach
cleanup hooks in node entrypoint - by @sheremet-va in #6192 (e6fbc) - UserEvent.setup initiates a separate state for userEvent instance - by @sheremet-va in #6088 (883f3)
- Correctly import optimized module in vi.importActual - by @sheremet-va in #6219 (804ff)
- Passing options to hover/unhover - by @mneveroff in #6175 (d4c00)
- Improve unique CSS selector generation - by @zacharyvoase and Zack Voase in #6243 (e7acd)
- Don't bundle
- vitest:
- Remove nuxt from auto inline deps - by @sheremet-va (93882)
- Improve
defineProject
anddefineWorkspace
types - by @sheremet-va in #6198 (8cd82) - Correctly resolve mocked
node:*
imports in__mocks__
folder - by @sheremet-va in #6204 (a48be)
- web-worker:
- Expose globals on self - by @sheremet-va in #6170 (12bb5)
View changes on GitHub
v2.0.4
🐞 Bug Fixes
- One-line environment options - by @hahanein in #5105 (38269)
- Resolve assets imported with
require
- by @sheremet-va in #6159 (807a2) - browser:
- Don't panic if @vitest/browser is installed outside of project root - by @sheremet-va in #6135 (ccfcd)
- Set global filepath - by @sheremet-va in #6190 (0d0b4)
- Allow preview and open in the editor screenshot error from ui - by @userquin in #6113 (2d620)
- coverage:
- Global thresholds to include files from glob thresholds - by @thor-juhasz and @AriPerkkio in #6172 (02e3f)
- Consistent type-only file handling - by @AriPerkkio in #6183 (90576)
- Ignore
*.cts
files - by @AriPerkkio in #6189 (5da45) - Add
thresholds.<glob>.100
option - by @thor-juhasz and @AriPerkkio in #6174 (f6845)
- spy:
View changes on GitHub
v2.0.3
🚀 Features
🐞 Bug Fixes
--inspect-brk
stop on Windows - by @AriPerkkio in #6110 (f8519)- browser:
- Don't import from "vite" - by @sheremet-va (35655)
- Allow immidiate reinvalidation of mocked dependencies - by @sheremet-va in #6108 (f44cc)
- spy:
- vite-node:
View changes on GitHub
v2.0.2
🐞 Bug Fixes
- browser:
- Remove @vitest/runner > pretty-format from prebundling because it doesn't exist - by @sheremet-va in #6075 (a169d)
- Inline pretty-format and replace picocolors with tinyrainbow - by @sheremet-va in #6077 (80a43)
- Remove
crypto.randomUUID
from the client - by @userquin in #6079 (04c83) - Correctly overwrite loupe require - by @sheremet-va (756ac)
- Dedupe @vitest/browser/client - by @sheremet-va in #6081 (ee725)
- Don't release keyboard automatically - by @sheremet-va in #6083 (58fac)
- ui:
- web-worker:
- Peer dependency version on
vitest
- by @AriPerkkio in #6060 (95a2d)
- Peer dependency version on
🏎 Performance
- browser: Don't import msw if no modules are mocked - by @sheremet-va in #6073 (aa527)
View changes on GitHub
v2.0.1
🐞 Bug Fixes
- browser: Correctly inherit browser config in a workspace - by @sheremet-va in #6054 (4b03e)
- ui: Move virtual scroller to dev dependencies - by @userquin in #6053 (f94ed)
- vitest: Print only running files, not every file - by @sheremet-va in #6052 (4d559)
View changes on GitHub
v2.0.0
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.
🚨 Breaking Changes
- Simplify mock function generic types and align with jest - by @hi-ogawa in #4784 (a0c1d37)
- Remove
--segfault-retry
- by @sheremet-va in #5514 (ed60e)- This flag was introduced to combat
threads
segfaults. Our current recommendation is to use the new defaultforks
pool instead.
- This flag was introduced to combat
- Run suite hooks in a stack - by @sheremet-va in #5609 (1277d)
- This feels like a more sensible default. Especially with the new
onTestFinished
hook. This can make your tests run a little bit slower.
- This feels like a more sensible default. Especially with the new
- Enable
coverage.ignoreEmptyLines
by default - by @AriPerkkio in #5543 (31994)⚠️ This change may cause significant differences in your coverage results compared to Vitest v1. These changes are expected as coverage reporting is now more accurate. See #5423 for more details.
- Add correct location and snapshot fields in json reporter - by @sheremet-va in #5434 (bcccc)
- Previously, the
location
field pointed to the error location instead of the test location. Now it is aligned with jest and contains theline
andcolumn
of a test function, but requiresincludeTaskLocation
to be enabled.
- Previously, the
- Update dependency chai to v5 - by renovate[bot] and @sheremet-va in #5135 (73646)
- Remove watchExclude - by @patak-dev in #5177 (d7371)
- Change default
pool
to'forks'
- by @AriPerkkio in #5047 (7f8f9)- This change is done for compatibility issues
- This pool may be slightly slower than previous
threads
pool: https://vitest.dev/guide/improving-performance.html#pool
--merge-reports
to support coverage - by @AriPerkkio in #5736 (b7438)- Add promise-based return assertions, do not auto-resolve returned promises - by @sheremet-va in #5749 (5f710)
⚠️ Vitest no longer unwraps promises inspy.mock.returns
. If the function is async or returns a promise, it will always succeed and have aPromise
inresults
. To make migration easier, we introducedspy.mock.settledResults
that unwraps promises andexpect().toHaveResolved()
matcher that accepts unwrapped value.
- Do not exit process if global setup has failed - by @sheremet-va in #5726 (ddb09)
- Don't exit process if config failed - by @sheremet-va in #5715 (f232f)
- Add meta to
json
output - by @sheremet-va in #5802 (dd754) - Rename
indexScripts
toorchestratorScripts
in the browser config - by @sheremet-va in #5842 (49f34) - Add "vitest list" API to print collected tests without running them - by @sheremet-va in #6013 (583dd)
⚠️ This changes the custompool
API - now requirescollectTests
method alongsiderunTests
.
- Remove the empty suite from the runner - by @sheremet-va in #5435 (dbbbe)
- Support concurrent suites - by @hi-ogawa in #5491 (222ce44)
- Support overriding
exclude
in coverage - by @AriPerkkio in #5997 (169bc)⚠️ Vitest coverage no longer adds test files toexclude
patterns ifcoverage.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.
- api:
- Remove
process.exit
if workspace project failed to be created - by @sheremet-va in #5804 (a820e) - Don't call
process.exit
manually - by @sheremet-va in #5926 (e9b63)
- Remove
🚀 Features
- browser:
- 🌐 This release lays the groundwork for the next iteration of Vitest Browser Mode. You can read more about our future plans at https://github.com/vitest-dev/vitest/discussions/5828
- Add commands to communicate betweens server and the browser - by @sheremet-va in #5097 (aa431)
- Do not reload the page during watch mode - by @sheremet-va in #5810 (e5b9a)
- Support changing the viewport - by @sheremet-va in #5811 (71851)
- Add browser iframe mouse interaction - by @userquin in #5815 (f29b9)
- Support
click
event - by @sheremet-va in #5777 (839c3) - Rename none provider to preview, make it default - by @sheremet-va in #5826 (18310)
- Run tests in parallel in headless mode, add
page.screenshot
method - by @sheremet-va in #5853 (81c42) - Implement several
userEvent
methods, addfill
anddragAndDrop
events - by @sheremet-va in #5882 (4dbea) - Introduce
expect.dom
method and bundlejest-dom
matchers with@vitest/browser
- by @sheremet-va in #5910 (3a96a) - Expose CDP in the browser - by @sheremet-va in #5938 (bec43)
- Add "init" command for browser tests - by @sheremet-va in #5960 (49e97)
- Add an option to take screenshots if the browser test fails - by @sheremet-va in #5975 (154cb)
- Add
tripleClick
to interactive api - by @userquin in #5987 (200a4) - Playwright provider doesn't allow resizing the browser viewport - by @userquin and @sheremet-va in #5984 (ff978)
- Pretty print diffs coming from cause - by @dubzzz in #5660 (6faf8)
- Allow import statement as vi.mock path for better IDE support - by @sheremet-va in #5690 (a99a1)
- Remove deprecated options - by @sheremet-va in #5696 (5c308)
- Add blob reporter - by @sheremet-va in #5663 (e2053)
- ✅ Run Vitest i...
v2.0.0-beta.13
🚨 Breaking Changes
- vitest: Add "vitest list" API to print collected tests without running them - by @sheremet-va in #6013 (583dd)
- api:
- Don't call process.exit manually - by @sheremet-va in #5926 (e9b63)
🚀 Features
- Add an option to return base64 from page.screenshot - by @sheremet-va in #5993 (be323)
- Expose
parseAst
,parseAstAsync
from vite - by @sheremet-va (f645e) - browser:
- config:
- ui:
🐞 Bug Fixes
- Don't override uppercase - by @sheremet-va (caef4)
- Clear screen and scrollback on iTerm2 - by @kxalex in #5978 (d7f23)
- Include pretty-format in @vitest/runner for optimization on npm - by @sheremet-va (42bd4)
- Transpile esnext to node18 to support newest JS and TS features - by @sheremet-va in #4409 (8f65a)
- browser:
- Print screenshot path alongside the test error message - by @sheremet-va in #5992 (15289)
- Print correct stack trace in source files - by @sheremet-va in #6003 (62aa7)
- Correctly mock optimized cjs dependencies - by @sheremet-va in #6035 (057b4)
- Support shadow root and svg elements - by @sheremet-va in #6036 (2e3c8)
- coverage:
- Exclude bench files from coverage - by @kouak in #5983 (429e1)
- Vite to ignore dynamic import of provider - by @AriPerkkio in #5998 (6d884)
- Istanbul to support import attributes - by @Gravitonic in #6006 (2898a)
- Support overriding
exclude
- by @AriPerkkio in #5997 (169bc) - Remove work-around for implicit
else
- by @AriPerkkio in #6014 (368c1)
- vite-node:
- Expose all envs from .env file, not just with a prefix
VITE_
- by @sheremet-va in #6017 (d87be)
- Expose all envs from .env file, not just with a prefix
- vitest:
- Allow testing unandled rejection/exception - by @sheremet-va in #6016 (c8d56)
- Show all failed tests when rerunning a test - by @sheremet-va in #6022 (91ba6)
View changes on GitHub
v2.0.0-beta.12
🚀 Features
- browser:
- Introduce
expect.dom
method and bundlejest-dom
matchers with@vitest/browser
- by @sheremet-va in #5910 (3a96a) - Expose CDP in the browser - by @sheremet-va in #5938 (bec43)
- Add "init" command for browser tests - by @sheremet-va in #5960 (49e97)
- Add an option to take screenshots if the browser test fails - by @sheremet-va in #5975 (154cb)
- Introduce
- spy:
- Collect mock.contexts - by @sheremet-va in #5955 (3b31a)
- ui:
🐞 Bug Fixes
- Use TTY reporter when running in Deno - by @marvinhagemeister in #5972 (e0f45)
- api:
- Correct
project.provide
type - by @sheremet-va in #5959 (0eda9)
- Correct
- browser:
- Remove "util" warning - by @sheremet-va in #5935 (48f28)
- Remove hacky retry - by @sheremet-va in #5971 (2a2c9)
- Make userEvent more stable when running in parallel - by @sheremet-va in #5974 (14a21)
- coverage:
- Pass thresholds errors to
stderr
ofstartVitest()
- by @AriPerkkio in #5954 (70805)
- Pass thresholds errors to
- types:
- Mark pool options as not available in project config - by @sheremet-va in #5934 (486fd)
- ui:
View changes on GitHub
v2.0.0-beta.11
🚀 Features
- Image type add bmp - by @btea in #5921 (98f9b)
- browser: Implement several
userEvent
methods, addfill
anddragAndDrop
events - by @sheremet-va in #5882 (4dbea) - ws-client: Allow change reactive for state, filesMap and idMap - by @userquin in #5906 (e6020)
🐞 Bug Fixes
- ToJSON recursive error serialization - by @eddienubes in #5848 and #5884 (8d55d)
- Print error properties only in verbose reporter - by @sheremet-va in #5917 (2bd8d)
- browser:
- Resolve
coverage.reporter
from string values - by @AriPerkkio in #5920 (f33da) - Correctly update inline snapshot if changed - by @sheremet-va in #5925 (2380c)
- Resolve
- snapshot:
- vitest:
- Expose
provide
to the public API - by @sheremet-va in #5897 (66e64) - Cache fs code only for forks pool - by @sheremet-va in #5909 (e30d9)
- Expose