v1.0.0
版本发布时间: 2023-12-04 23:45:39
vitest-dev/vitest最新发布版本:v2.1.0-beta.6(2024-08-20 21:19:10)
Vitest 1.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
- Add support for
pool
andpoolOptions
, remove old flags - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4172 (114a9) - Support multiple parallel
child_process
- by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3925 (8b4a4) - Make snapshots more visually pleasing by @sheremet-va in https://github.com/vitest-dev/vitest/pull/3961
- Set
vitest
peer dependency range for sub packages - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4299 (cd03c) - Bump minimum node version to 18 and match Vite 5 requirement - by @ghiscoding in https://github.com/vitest-dev/vitest/issues/4296 (263b7)
- Remove deprecated node loader - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4371 (29299)
- Move browser providers to @vitest/browser package - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4364 (5cdeb)
- Remove EnhancedSpy type, deprecate SpyInstance, improve mocks and vi documentation - by @sheremet-va and @dammy001 in https://github.com/vitest-dev/vitest/issues/4400 (d40b3)
- runner: Correctly process custom tasks, update runner hooks naming by @sheremet-va in https://github.com/vitest-dev/vitest/pull/4076
-
coverage:
- glob based coverage thresholds by @AriPerkkio in https://github.com/vitest-dev/vitest/pull/4442 (18300)
- Use
transformMode
and workspace project based source maps - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4309 (28109cc) - Enable
coverage.all
by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4265 (5a741)
🚀 Features
- Add Marko example and include code coverage for Marko files - by @DylanPiercey in https://github.com/vitest-dev/vitest/issues/4263 (eac77)
- Update magic-string - by @bluwy in https://github.com/vitest-dev/vitest/issues/4345 (fde18)
- Implement provide/inject API to transfer data from the main thread - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4422 (a7522)
- Improve expectTypeOf error messages - by @mmkal, Misha Kaletsky and @sheremet-va in https://github.com/vitest-dev/vitest/issues/4206 (18300)
- Add test.sequential() api - by @dsyddall in https://github.com/vitest-dev/vitest/issues/4512 (c3619)
- Allow custom pools - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4417 (a3fd5)
- Add --project option to limit what projects are running - by @sheremet-va, @dammy001 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4561 (58ef5)
-
benchmark:
- Move importTinybench to runner - by @Dunqing in https://github.com/vitest-dev/vitest/issues/4376 (c36d2)
-
browser:
- Support "none" provider and update lit example to use it - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4427 (d03a2)
-
coverage:
- Support
/* v8 ignore...
ignore hints - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4573 (f9e4a)
- Support
-
expect:
- Support
expect.closeTo
api - by @Dunqing and golebiowskib in https://github.com/vitest-dev/vitest/issues/4260 (7f91c) - ToContain can handle classList and Node.contains - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4239 (ce84f)
- Compare URL objects by href - by @kleinfreund and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4615 (f7a73)
- Support
-
snapshot:
- Add option to configure snapshot directory - by @d3lm in https://github.com/vitest-dev/vitest/issues/4651 (20b2a)
-
vite-node:
- Support import.meta.hot.off for vite 5 - by @bluwy in https://github.com/vitest-dev/vitest/issues/4315 (01b1c)
-
vitest:
- Expose getBenchFn, getBenchOptions - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4208 (8e5e4)
- Run typecheck during tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4324 (a1aad)
- Filter stacktraces - by @clarkf in https://github.com/vitest-dev/vitest/issues/1999 and https://github.com/vitest-dev/vitest/issues/4338 (6b734)
- Expose execArgv to the different pools - by @adriencaccia in https://github.com/vitest-dev/vitest/issues/4383 (9021e)
🐞 Bug Fixes
- Add multiple globals in VM+JSDOM - by @nstepien in https://github.com/vitest-dev/vitest/issues/4199 and https://github.com/vitest-dev/vitest/issues/4202 (fc947)
- Ignore "plugins" field in snapshotFormat option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4204 (db1ff)
-
nextTick
mocking error message to mention correct config option - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4215 (98fe3) - Export VitestUtils interface - by @fbritoferreira in https://github.com/vitest-dev/vitest/issues/4301 (b1439)
- Assertion diff message handle non-writable sub-properties - by @bfamchon in https://github.com/vitest-dev/vitest/issues/4278 (7e1a0)
- Don't bundle import from rollup - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4392 (3b584)
- Support accessing fixture at same index of dependency fixture - by @dsyddall in https://github.com/vitest-dev/vitest/issues/4387 (4cd1d)
- Make asynchronous fixtures work concurrently - by @dsyddall in https://github.com/vitest-dev/vitest/issues/4403 (3c9f9)
- Coverage.100 crash when using as an cli argument - by @marcelobotega in https://github.com/vitest-dev/vitest/issues/4346 (0db38)
- Support typechecking with Yarn PnP - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4412 (1ecbe)
- Support accessing task from test context without accessing fixtures - by @dsyddall in https://github.com/vitest-dev/vitest/issues/4419 (3397f)
- Copy custom asymmetric matchers to local
expect
- by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/4405 (9fe38) - Apply serializer to
Error
instance for thrown snapshot - by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/4396 (ac309) - Throw an error when running "vitest typecheck" - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4439 (7f502)
- Don't expand snapshot diff by default - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4430 (8983c)
- Handle errors thrown in fixtures - by @dsyddall (f6844)
- Default --open to !process.env.CI - by @collinstevens in https://github.com/vitest-dev/vitest/issues/4477 (088a0)
- Disable ESBuild when user config disables it - by @Namchee in https://github.com/vitest-dev/vitest/issues/4492 (9abde)
- Inherit concurrent/sequential in nested suites - by @dsyddall in https://github.com/vitest-dev/vitest/issues/4482 (ca168)
- Provide customTesters to asymmetric matchers - by @sheremet-va (ac665)
- Apply
retry
andbail
from test config file - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/4530 (94f9a) - Respect trailing slash when filtering by file path - by @ibuibu in https://github.com/vitest-dev/vitest/issues/4538 (f377a)
- Date prototype when using setSystemTime - by @spiroka in https://github.com/vitest-dev/vitest/issues/4584 (3f8c3)
- BrowserTestRunner called incorrect super methods - by @samthor in https://github.com/vitest-dev/vitest/issues/4632 (8385c)
- Set process name for idle workers - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4641 (eca25)
-
bench:
- Extract ChainableBenchmarkAPI type - by @dsyddall in https://github.com/vitest-dev/vitest/issues/4537 (79e9b)
-
browser:
- Improve error handling and don't rely on Node.js builtin modules in browser mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4244 (e7e8c)
- Disable hijacking ES modules until vi.mock is implemented - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4414 (ab556)
- Add vitest/ imports to entries - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4514 (648bc)
- Wait until vite finishes prebundling of vitest dependencies - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4518 (56ee7)
- Allow for
pretty-format
as a sibling dependency - by @nicojs in https://github.com/vitest-dev/vitest/issues/4590 (ed50a) - Don't go into an infinite reload loop, don't fail if "error" event is caught - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4618 (ec3d6)
- Respect "server" option in vite config - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4627 (723f6)
-
cli:
- Do not capture
stdin
when in run mode - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4310 (fc51a)
- Do not capture
-
config:
- Type issue of
pool
andpoolMatchGlobs
in defineConfig - by @InfiniteXyy in https://github.com/vitest-dev/vitest/issues/4282 (9112c)
- Type issue of
-
coverage:
-
thresholdAutoUpdate
to detect zero limits - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4287 (a29fe) - Exclude files and directories starting with dot by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4428 (b3327)
- Improve memory usage by writing temporary files on file system - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4603 (4166c)
-
-
deps:
- Update dependency v8-to-istanbul to ^9.2.0 - by @renovate[bot] in https://github.com/vitest-dev/vitest/issues/4583 (a70f2)
- Update dependency std-env to ^3.5.0 - by @renovate[bot] in https://github.com/vitest-dev/vitest/issues/4582 (1fdd6)
-
example:
- Resolve type error - by @jqkk in https://github.com/vitest-dev/vitest/issues/4515 (2d1b4)
-
expect:
- Publish types file - by @sheremet-va (5996c)
-
Object.freeze
breakstoEqual
- by @Dunqing in https://github.com/vitest-dev/vitest/issues/4303 (a4501) - Publish semantically correct chai types - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4322 (80a70)
- Print full error if promise is rejected - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4467 (cadb9)
- Don't fail when using jest expect - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4517 (60d6d)
-
happy-dom:
- Don't crash when calling useFakeTimers with empty config - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4214 (2e1a1)
-
jsdom:
- Don't go into an infinite recusion when calling atob - by @sheremet-va (da794)
-
runner:
- Fixture needs to be initialized for each test - by @Dunqing in https://github.com/vitest-dev/vitest/issues/4250 (76a93)
- Nested tests should throw errors - by @Dunqing in https://github.com/vitest-dev/vitest/issues/4262 (8ac9f)
- Removes deprecated
error
option from TaskResult - by @Dunqing in https://github.com/vitest-dev/vitest/issues/4313 (4cee6) - Preserve fixtures when calling runif and skipif - by @dsyddall in https://github.com/vitest-dev/vitest/issues/4585 and https://github.com/vitest-dev/vitest/issues/4591 (515ea)
- PassWithNoTests option not work - by @Dunqing in https://github.com/vitest-dev/vitest/issues/4553 (8d183)
-
vite-node:
- Have a separate cache for web/ssr transforms - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4221 (ca5db)
- Mjs files watch not work - by @Dunqing in https://github.com/vitest-dev/vitest/issues/3982 (77ea9)
-
vitest:
- Make @types/node optional - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4210 (a5383)
- Inline chai types instead of using @types/chai - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4209 (5f477)
- Don't initialize globalSetup if workspace doesn't run tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4213 (06461)
- Deduplicate vitest when running globally or in a workspace - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4238 (93504)
- Print file path instead of "unknown test" when logging - by @Dunqing in https://github.com/vitest-dev/vitest/issues/4146 (ec2e8)
- Failed to load custom environment from js/ts file - by @Dunqing and @sheremet-va in https://github.com/vitest-dev/vitest/issues/4255 (da8d0)
- Support assets in new URL in Vite 5 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4258 (d280f)
- Correctly hoist
vi.hoisted
if assigned - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4285 (ff93a) - Run globalSetup from the root config even if it's not in a workspace - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4325 (4293e)
- Pass correct mode in vitest config function - by @adriencaccia in https://github.com/vitest-dev/vitest/issues/4399 (b8ca3)
- Throw an error if vitest is imported using require() - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4466 (e5cf1)
- Use correct type for defineProject to allow usage in mergeConfig - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4498 (7dee8)
- Throw an error if Vite wasn't able to resolve aliased path - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4503 (50333)
- Improve vi.waitUntil type to excude falsy types - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4572 (23652)
- Add import-meta.d.ts - by @macdaddyaz in https://github.com/vitest-dev/vitest/issues/4571 (dd802)
- Correctly support CSS variable when using happy-dom - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/4601 (9fbf3)
- Pass correct server options in workspace - by @hironytic in https://github.com/vitest-dev/vitest/issues/4539 and https://github.com/vitest-dev/vitest/issues/4540 (241a8)
- Independently mock each instance's methods for mocked class - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/4564 (05b05)
-
vm:
- Remove sequencer usage from createVmThreadsPool function - by @mhogeveen in https://github.com/vitest-dev/vitest/issues/4638 (54d52)
🏎 Performance
- Update
log-update
v9 - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4390 (ba1df) - Close pool early in run-mode - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4623 (e0e20)
-
coverage-istanbul:
all: true
instruments already instrumented files - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/4552 (d1e1b)