Releases: vitest-dev/vitest
Releases · vitest-dev/vitest
v0.34.3
🚀 Features
- coverage: Add
allowExternal
option - by @vojvodics and @AriPerkkio in #3894 (c03fa) - vitest: Export all reporters in
vitest/reporters
- by @Dunqing and @sheremet-va in #3980 (5704b)
🐞 Bug Fixes
- Should remove mockPath from callstack whether success or failed - by @miserylee and lijifei in #3971 (5eb85)
- Add workspace config files to default coverage excludes - by @FelixGraf and @AriPerkkio in #3973 (20263)
- Report file error as a on JUnit - by @3c1u in #3997 (00c43)
- jsdom: Correctly resolve buffer on typed arrays - by @sheremet-va in #3998 (b42cf)
- ui: Use web hash history in ui - by @segevfiner and @sheremet-va in #3481 and #3487 (8caab)
- vite-node: Inline HMR types - by @sheremet-va in #3993 (dff60)
- vitest: Correctly resolve optimizer status - by @sheremet-va in #3992 (74dc5)
View changes on GitHub
v0.34.2
🚀 Features
- Allow importing CSS and assets inside external dependencies when using
--experimental-vm-threads
- by @sheremet-va in #3880 (f4e6e) - vitest: Allow calling
ctx.skip()
inside the running test - by @sheremet-va in #3966 (5c88d)
🐞 Bug Fixes
- Don't bundle utils' source-map entry - by @sheremet-va in #3865 (a08e5)
- Reduce the memory consumption when running --experimental-vm-threads - by @sheremet-va in #3872 (d1a08)
- Indicator position of error message - by @fenghan34 in #3855 (3e1e7)
- Don't crash when using --experimental-vm-threads, interop CJS default inside node_modules - by @sheremet-va in #3876 (0c53e)
- Don't crash if total memory is not supported - by @sheremet-va in #3879 (7d1f8)
- Check memory and limit value - by @sheremet-va (f8dfb)
- Update module warning as it is moved into server config - by @jellyfishgh in #3931 (3a3eb)
- Define process variable and using import.meta.env together did not work - by @Dunqing in #3944 (e73ca)
- Correctly resolve config in a workspace - by @sheremet-va in #3947 (1c08d)
- Don't crash when calling useFakeTimers in VM pool - by @sheremet-va in #3958 (91fe4)
- Restrict access to file system via API - by @sheremet-va in #3956 (bcb41)
- Typo of mocks plugin name - by @antfu (3073b)
- Build not generated
execute.d.ts
- by @btea in #3970 (0f8e6) - css:
- Don't mock css-module if
?inline
query is specified - by @thebanjomatic and Adam Hines in #3952 (3891d)
- Don't mock css-module if
- expect:
- Correctly show async matcher diff - by @sheremet-va in #3960 (9423b)
- snapshots:
- Update inline snapshot correctly - by @fenghan34 in #3887 (7b740)
- ui:
- vitest:
- Use esm module resolution to resolve env - by @danielroe in #3951 (edb32)
- Allow rewriting process.env.NODE_MODE when using web transform mode - by @sheremet-va in #3957 (eca4b)
- Only consider cwd when using glob - by @g-plane in #3802 and #3949 (15b4f)
- Pass environmentOptions to happy-dom integration - by @sheremet-va and Raul de Melo in #3972 (6a0cb)
- web:
- Correctly resolve assets in new URL - by @sheremet-va in #3950 (a428f)
🏎 Performance
- dot-renderer: Speed up getTests - by @gtm-nayan in #3923 (e9404)
View changes on GitHub
v0.34.1
🐞 Bug Fixes
- Pass
--experimental-vm-worker-memory-limit
totinypool
- by @AriPerkkio in #3856 (3c67a)
View changes on GitHub
v0.34.0
🚨 Breaking Changes
- Transform mode affects only test files, not regular files - by @sheremet-va in #3491 (9608b)
transformMode
is now moved toserver.transformMode
. This option is highly discouraged to use. If you need to change the transform mode, use the new optiontestTransformMode
instead to control the mode based on the running test, not the current file path. By default, tests withjsdom
orhappy-dom
useweb
transform mode, and tests usingnode
oredge
environment usessr
mode. If you have a custom environment, it should providetransformMode
property.
- Custom environment now should be processed before Vitest can consume it. It means that you cannot specify a path to a TS file or use import paths that should be processed by Vite.
- Disable
coverage.reportOnFailure
by default - by @AriPerkkio in #3615 (0c6f6) - Remove
@vitest/coverage-c8
package - by @AriPerkkio in #3614 (a90d6)@vitest/coverage-c8
is no longer supported. Please, use@vitest/coverage-v8
instead.
- Support running tests using VM context - by @sheremet-va and @dammy001 in #3203 (b0929)
- To address speed issues in some applications, Vitest now provides
experimentalVmThreads
pool to run your tests using VM Sandboxes environment. Make sure you understand all pitfalls of this pool before opening an issue.
- To address speed issues in some applications, Vitest now provides
- Introduce
server
option - by @fenghan34 and @sheremet-va in #3725 (dc4fa)- Most of
deps.
options are now moved toserver.deps
with a deprecation warning. Please, consider usingdeps.optimizer
instead ofdeps.inline
/deps.external
. Ideally, we would like to move away from usingserver.deps.inline
altogether.
- Most of
- vite-node: Make CLI arguments parsing behavior consistent with node/tsx/ts-node - by @rxliuli in #3574 (1cd4e)
- You now have to provide CLI arguments before the entry point. For example, instead of
vite-node index.ts --watch
, you now have to dovite-node --watch index.ts
.
- You now have to provide CLI arguments before the entry point. For example, instead of
- Add preact example, remove optimizer experimental status, enable by default - by @sheremet-va and @eryue0220 in #3854 (4b946)
deps.optimizer
is now enabled by default. This means that Vitest will bundle specified dependencies before running your tests. This field inherits options fromoptimizeDeps
andssr.optimizeDeps
which are populated by other plugins (like, Svelte).
🚀 Features
- Support
describe.sequential
- by @fenghan34 and @dammy001 in #3771 (86934) - Support config junit reporter className with env - by @InfiniteXyy in #3808 (e8bc4)
- Running vitest with
--related --watch
reruns non-affected tests if they were changed during a run - by @sheremet-va in #3844 (c9aea)
🐞 Bug Fixes
- Isolate workers between envs and workspaces - by @AriPerkkio (ed4e0)
- Modify condition - by @btea (a78e6)
- Module Graph view is blocking the Console view - by @g4rry420 (3b5f9)
- Port the latest
defineConfig
type from vite - by @sodatea in #3804 (9c8e3) - Don't overwrite Node.js URL global - by @sheremet-va in #3828 (cdab4)
- ForceRerunTriggers correctly triggers a rerun - by @sheremet-va in #3829 (17988)
- browser:
- core:
- coverage:
- V8 provider to pick source maps without url query params - by @AriPerkkio in #3784 (280e6)
- Update
istanbul-lib-instrument
to v6 to fix vulnerable dependency - by @AriPerkkio in #3814 (f3bd9) - Exclude vite virtual modules by default - by @AriPerkkio in #3794 (3c851)
- node:
- vite-node:
- Always treat node_modules as modulesDirectory - by @sheremet-va in #3830 (51ab8)
- Normalize drive letter to keep the same reference to a module - by @sheremet-va in #3836 (45521)
- Correctly resolve hmr filepath - by @sheremet-va in #3834 (711a6)
- watch:
- Clear screen on all terminals - by @AriPerkkio in #3661 (8bd26)
🏎 Performance
- Deprecate deps.registerNodeLoader - by @sheremet-va (7f45b)
- This option was introduced to support aliasing inside external packages. Please, use
deps.optimizer.web
instead. If you test Node.js applications, consider adding external packages toserver.deps.inline
.
- This option was introduced to support aliasing inside external packages. Please, use
View changes on GitHub
v0.33.0
🚨 Breaking Changes
- Revert default include patterns - by @so1ve #3729
0.32.0
changed the defaultinclude
globs to be compatible with Jest. After a discussion with the community, we are reverting this change because it turned out to be non-intuitive.
🐞 Bug Fixes
- Add missing JSDom living keys - by @DerZade in #3702 (83a86)
- vite-node:
- Don't fail when importing Promise module - by @sheremet-va (08192)
- Allow importing node:test - by @sheremet-va (db22c)
View changes on GitHub
v0.32.4
🐞 Bug Fixes
- browser: Correctly optimize CJS dependencies - by @sheremet-va (3d090)
View changes on GitHub
v0.32.3
🚀 Features
- Add
concurrent
option tosequence
config - by @fenghan34 and @sheremet-va in #3604 (f427f) - Introduce global configuration for retry setting - by @imentu and @sheremet-va in #3598 and #3603 (9a117)
- Don't rely on util package in @vitest/utils - by @sheremet-va in #3685 (f91da)
- Support accessing other fixtures in fixture function - by @fenghan34 in #3651 (1621c)
- Support use function/class as
bench
name - by @fenghan34 in #3711 (a749a) - reporters: Show full test suite when testing 1 spec file at a time - by @Dunqing in #3543 (7531c)
- runner: Support
test.extend
- by @fenghan34 in #3554 (2db1a)
🐞 Bug Fixes
- Remove "concordance" from dependencies list - by @sheremet-va in #3597 (969dc)
- Show diff correctly - by @sheremet-va in #3620 (73dd4)
- Util import - by @fubhy in #3621 (2fb4c)
- Compat with frozen Math - by @turadg in #3527 (0db67)
CTRL+C
to terminate run - by @AriPerkkio in #3642 (fa663)- Run mode stuck in TTY terminals - by @AriPerkkio in #3690 (141a8)
- Use first stack frame in json reporter - by @tim-smart in #3645 (80ea7)
- Print actual number for
toBeCalledTimes
- by @antfu in #3696 (d3640) - benchmark:
- Don't fail when running correct benchmarks - by @sheremet-va in #3629 (edad9)
- browser:
- Correctly print diff - by @sheremet-va in #3627 (d756e)
- Esm injector doesn't replace class expressions - by @sheremet-va in #3641 (5c0ac)
- Transform superclass identifier - by @sheremet-va in #3681 (a1e04)
- coverage:
v8
to prevent crash on dynamic CJS files - by @AriPerkkio in #3657 (40f18)
- runner:
- utils:
- Respect all flags in format function - by @sheremet-va in #3695 (91e16)
- watch:
- Cancel using
h
key - by @AriPerkkio in #3618 (60c36)
- Cancel using
View changes on GitHub
v0.32.2
🐞 Bug Fixes
- browser: Don't fail on importing diff-sequences - by @sheremet-va (00b0e)
View changes on GitHub
v0.32.1
🚀 Features
- Export
registerConsoleShortcuts
fromvitest/node
- by @deot in #3563 (bc49b) - expect: Support
expect.unreachable
- by @fenghan34 and @sheremet-va in #3556 (8e385) - runner:
describe
/test
name support anonymous function - by @btea in #3562 (3d436)
🐞 Bug Fixes
- Avoid call stack recursion with large error (fix: #3060) - by @nathanmmiller and @sheremet-va in #3078 and #3060 (02196)
- Automatically remove define related configuration - by @btea in #3552 (368b8)
- Import
performance
fromperf_hooks
- by @Max10240 and wangbaolong.wbl in #3578 and #3579 (24ec8) - Revert concordance diff, use jest's diff output - by @sheremet-va in #3582 (9c7ea)
- Typo in config suggestion - by @Krisell in #3583 (68985)
- browser:
- mocker:
- Respect namespace import when hoisting vi.mock - by @sheremet-va in #3547 (158c4)
- ui:
- vite-node:
View changes on GitHub
v0.32.0
🚨 Breaking Changes
- Throw an error, if the module cannot be resolved - by @sheremet-va in #3307 (1ad63)
- Vitest used to fall back to the original import when it could not resolve it to the file path or the virtual module. This leads to hard-to-find module graph mismatches if you had incorrect alias or relied on relative imports to be resolved to the project root (which is usual behavior in TypeScript) because the code accidentally "worked". With this release, Vitest will now throw an error if it cannot resolve the module - there are possible edge cases that are not covered yet, so if you have any problems with this, please open a separate issue with reproduction.
- Improve globs - by @nickmccurdy in #3392 (19ecc)
- Vitest now has glob patterns similar to Jest for better compatibility. It's possible that some files will be considered test files when previously they were not. For example, Vitest now considers
test.js
to be a test file. Also any file in__tests__
is now considered to be a test, not just files withtest
orspec
suffix.
- Vitest now has glob patterns similar to Jest for better compatibility. It's possible that some files will be considered test files when previously they were not. For example, Vitest now considers
- Add
@vitest/coverage-v8
package - by @AriPerkkio in #3339 (82112)- Vitest now uses v8 code coverage directly for better performance.
@vitest/coverage-c8
is deprecated as Vitest no longer uses c8 package for coverage output. It will not be updated anymore, and Vitest will fail in the next version if the user hasc8
as their coverage provider. Please, install the new@vitest/coverage-v8
package if you previously used@vitest/coverage-c8
.
- Vitest now uses v8 code coverage directly for better performance.
- mocker: Don't restore mock to the original if the module is automocked - by @sheremet-va in #3518 (c1004)
spy.mockRestore
on auto-mocked named exports will no longer restore their implementation to the actual function. This behavior better matches what Jest does.
🚀 Features
- Support ssr optimizer - by @sheremet-va in #3490 (89842)
- Image type add apng - by @btea in #3498 (a53c2)
- expect: Support
expect.soft
- by @Dunqing in #3507 (7c687) - runner: Support using function/class as
describe
/test
name - by @fenghan34 in #3497 (15253)
🐞 Bug Fixes
- The cli option is passed to coverage.exclude - by @btea in #3506 (c37cd)
- optimizer: Always respect optimizeDeps even if include/exclude is overridden - by @sheremet-va in #3488 (eb285)
- runner: Ensure Vitest is deduped - by @sheremet-va in #3489 (2deb7)
- ui: Don't cache coverage assets - by @userquin in #3508 (952b5)
- vite-node: Circular import stuck - by @Dunqing in #3480 (50f07)
- watch: Junit reporter fails to re-generate report - by @AriPerkkio in #3496 (5b73c)