Releases: vitest-dev/vitest
Releases · vitest-dev/vitest
v1.0.0-beta.3
🚨 Breaking Changes
- Set
vitest
peer dependency range for sub packages - by @AriPerkkio in #4299 (cd03c) - Bump minimum node version to 18 and match Vite 5 requirement - by @ghiscoding in #4296 (263b7)
- Remove deprecated node loader - by @sheremet-va in #4371 (29299)
- Move browser providers to @vitest/browser package - by @sheremet-va in #4364 (5cdeb)
- coverage:
- Use
transformMode
and workspace project based source maps - by @AriPerkkio in #4309 (28109cc)
- Use
🚀 Features
🐞 Bug Fixes
- Export VitestUtils interface - by @fbritoferreira in #4301 (b1439)
- Assertion diff message handle non-writable sub-properties - by @bfamchon in #4278 (7e1a0)
- cli:
- Do not capture
stdin
when in run mode - by @AriPerkkio in #4310 (fc51a)
- Do not capture
- config:
- Type issue of
pool
andpoolMatchGlobs
in defineConfig - by @InfiniteXyy in #4282 (9112c)
- Type issue of
- coverage:
thresholdAutoUpdate
to detect zero limits - by @AriPerkkio in #4287 (a29fe)
- expect:
- runner:
- vitest:
- Run globalSetup from the root config even if it's not in a workspace - by @sheremet-va in #4325 (4293e)
View changes on GitHub
v1.0.0-beta.2
🚨 Breaking Changes
- Enable
coverage.all
by default - by @AriPerkkio in #4265 (5a741)
🚀 Features
- Add Marko example and include code coverage for Marko files - by @DylanPiercey in #4263 (eac77)
- expect: Support
expect.closeTo
api - by @Dunqing and golebiowskib in #4260 (7f91c)
🐞 Bug Fixes
- browser:
- Improve error handling and don't rely on Node.js builtin modules in browser mode - by @sheremet-va in #4244 (e7e8c)
- runner:
- vitest:
- Deduplicate vitest when running globally or in a workspace - by @sheremet-va in #4238 (93504)
- Print file path instead of "unknown test" when logging - by @Dunqing in #4146 (ec2e8)
- Failed to load custom environment from js/ts file - by @Dunqing and @sheremet-va in #4255 (da8d0)
- Support assets in new URL in Vite 5 - by @sheremet-va in #4258 (d280f)
- Correctly hoist
vi.hoisted
if assigned to a variable - by @sheremet-va in #4285 (ff93a)
View changes on GitHub
v1.0.0-beta.1
v1.0.0-beta.0
This is a beta release for upcoming 1.0.0 version. Use beta
dist-tag when installing Vitest: npm install --save-dev vitest@beta
.
🚨 Breaking Changes
- Support multiple parallel
child_process
- by @AriPerkkio in #3925 (8b4a4)- If you have to disable threads (if you use
canvas
package, for example), this should improve your speed tremendously. useFakeTimers()
no longer automatically mocksprocess.nextTick
. Users can still mock it by explicitly specifyinguseFakeTimers({ toFake: ['nextTick'] })
- If you have to disable threads (if you use
- Add support for
pool
andpoolOptions
, remove old flags - by @AriPerkkio in #4172 (114a9)- This removes a lot of configuration options to make it easier to configure the runner to your needs. Please, have a look at migration examples if you rely on
--threads
or other related flags.--threads
is now--pool=threads
--no-threads
is now--pool=forks
--single-thread
is now--poolOptions.threads.singleThread
--experimental-vm-threads
is now--pool=vmThreads
--experimental-vm-worker-memory-limit
is now--poolOptions.vmThreads.memoryLimit
--isolate
is now--poolOptions.<pool-name>.isolate
andbrowser.isolate
test.maxThreads
is nowtest.poolOptions.<pool-name>.maxThreads
test.minThreads
is nowtest.poolOptions.<pool-name>.minThreads
test.useAtomics
is nowtest.poolOptions.<pool-name>.useAtomics
test.poolMatchGlobs.child_process
is nowtest.poolMatchGlobs.forks
test.poolMatchGlobs.experimentalVmThreads
is nowtest.poolMatchGlobs.vmThreads
- This removes a lot of configuration options to make it easier to configure the runner to your needs. Please, have a look at migration examples if you rely on
- Make snapshots more visually pleasing by @sheremet-va in #3961
- This will probably cause a lot of test mismatches. Quotes in snapshots are no longer escaped, and all snapshots use backtick quotes (`) even if the string is just a single line. Please, read the PR description for a way to use the previous behavior if you have problems upgrading.
- runner: Correctly process custom tasks, update runner hooks naming by @sheremet-va in #4076
- This PR updates the names for most of the methods on a custom runner (Test -> Task).
- It also improves the flow for creating your custom tasks like benchmarks using
createTaskCollector
utility. This is primarily an advanced API for library authors. - If you use
@vitest/snapshot
separately, you will also need to update its usage. You no longer need to extendSnapshotClient
to overrideequalityCheck
method - just pass it down as anisEqual
option. Also some of the public API methods were renamed for clarity. - If you have any questions, please, read the PR description first.
🚀 Features
- Include "vitest" in the process name - by @sheremet-va in #4191 (404c1)
- runner: Improve text.extend types - by @Dunqing in #4176 (bbb43)
- vitest: Expose getBenchFn, getBenchOptions - by @sheremet-va in #4208 (8e5e4)
🐞 Bug Fixes
- Don't optimize vue when using optimizer - by @sheremet-va (4e941)
- Overwrite global URL with environment's - by @sheremet-va in #4164 (6a66b)
- Correctly resolve external dependencies loaded by custom environments - by @sheremet-va in #4196 (39647)
- Add multiple globals in VM+JSDOM - by @nstepien in #4199 and #4202 (fc947)
- Ignore "plugins" field in snapshotFormat option - by @sheremet-va in #4204 (db1ff)
nextTick
mocking error message to mention correct config option - by @AriPerkkio in #4215 (98fe3)- happy-dom:
- Don't crash when calling useFakeTimers with empty config - by @sheremet-va in #4214 (2e1a1)
- runner:
- vitest:
- Make @types/node optional - by @sheremet-va in #4210 (a5383)
- Inline chai types instead of using @types/chai - by @sheremet-va in #4209 (5f477)
- Don't initialize globalSetup if workspace doesn't run tests - by @sheremet-va in #4213 (06461)
View changes on GitHub
v0.34.6
🐞 Bug Fixes
- Overwrite global URL with environment's - by @sheremet-va in #4164 (cbe13)
- Correctly resolve external dependencies loaded by custom environments - by @sheremet-va in #4196 (e3408)
- runner: The fixture of
test.extend
should be init once time in all test - by @Dunqing in #4168 (730b2)
View changes on GitHub
v0.34.5
🚀 Features
- config:
- Add
diff
option - by @fenghan34 and @sheremet-va in #4063 (b50cf)
- Add
- coverage:
- Add
coverage['100']
to istanbul provider - by @marcelobotega in #4109 (a7e09)
- Add
- vitest:
- Support
vi.waitFor
method - by @Dunqing and @sheremet-va in #4113 (d79cb) - Allow using unprocessed environment files - by @sheremet-va in #4098 (1aee1)
- Support
vi.waitUntil
method - by @Dunqing and @sheremet-va in #4129 (e0ac9)
- Support
🐞 Bug Fixes
- Update HappyDOMOptions to be compatible with v12 - by @anthonyblond in #4135 (e8797)
- Print value shape when .resolves and .rejects fails - by @sheremet-va in #4137 (e649d)
- docs:
- Fix lint errors on onConsoleLog example - by @marcelobotega in #4116 (ba1e7)
- expect:
- happy-dom:
- Catch errors in happy-dom - by @capricorn86 in #4140 (c21c0)
- runner:
- snapshot:
- Support mix of normal/with placeholders snapshots - by @RobertPechaCZ in #4118 (01e01)
- ui:
- Correctly render ansi diff - by @so1ve and @sheremet-va in #3810 (8c315)
- vite-node:
- Export
SourceMapInput
to fix CYCLIC_CROSS_CHUNK_REEXPORT - by @Dunqing in #4128 (ca70a) - Align vite dependency version with vitest - by @sheremet-va (90ff8)
- Export
- vitest:
- Rerun tests if a file loaded with query changes - by @sheremet-va in #4130 (a084c)
- Inject "define" in workspaces - by @sheremet-va in #4096 (b4d5a)
🏎 Performance
- Use lazy require in vm pool - by @sheremet-va in #4136 (21ba4)
View changes on GitHub
v0.34.4
🐞 Bug Fixes
- Resolving dep optimizer issues with workspace - by @thebanjomatic in #4036 (0c13c)
- Don't process config file twice - by @sheremet-va in #4077 (a84a8)
- coverage:
- Log info only when terminal reporter is used - by @AriPerkkio in #4027 (9f043)
- happy-dom:
- Use the nodejs console in happy-dom v11 - by @capricorn86 in #4090 (59434)
- runner:
- vite-node:
- Check more precisely for root/base paths - by @danielroe in #4049 (80741)
- vitest:
- "vi" doesn't rely on context - by @sheremet-va in #4031 (0d0f3)
- Only override ssr.optimizer instead of the whole ssr object - by @sheremet-va in #4080 (410bc)
- Don't start the server when optimizer is enabled - by @sheremet-va in #4095 (00e81)
- Set SSR env only when transformMode is ssr - by @sheremet-va in #4083 (f8ea7)
- Show error when calling API on files that user has no access to - by @sheremet-va in #4085 (8b39c)
- web-worker:
- Don't rely on browser API when it's not provided - by @sheremet-va in #4014 (e78a4)
View changes on GitHub
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)