A screenshot of a PR with the title "feat: support deno runtime"
@vitest.dev vscode extension now supports @deno.land!
A screenshot of a PR with the title "feat: support deno runtime"
@vitest.dev vscode extension now supports @deno.land!
A screenshot of macOS terminal showing a test suite summary for Elena.
Been recently really enjoying working with Vitest tbh (both for client’s design system and also for my personal projects).
I’m just nerding out over the terminal colors at this point tho
🧪 In the latest release of @analogjs.org, you can migrate to @vitest.dev with browser mode for @playwright.dev enabled and automatically configured using an @angular.dev schematic!
analogjs.org/docs/feature...
✨ What's New in ViteLand: February 2026 Recap
◆ Oxfmt Beta: 100% Prettier conformance
◆ @vite.dev 8 includes devtools
◆ @vitest.dev 4.1 beta adds aroundEach/aroundAll hooks
◆ @rolldown.rs becomes 9.6% faster
◆ Oxlint now supports 59/61 ts-eslint rules
◆ NestJS migrates to Vitest
◆ and much more 👀
4 new packages added to Awesome Vitest in the last 7 days: 1 reporter, 2 utilities, and 1 browser mode environment. The ecosystem keeps growing.
Building tooling for @vitest.dev? PRs are welcome!
GitHub pull request page showing ‘refactor: remove experimental Jest and Web Test Runner builders #32582’ merged into angular:main. The screenshot highlights the pull request summary with 29 files changed, 34 checks, and a large red ‘−2,938’ code deletion indicator pointed to by a purple arrow.
This is my favorite kind of changes.
Experimental runners out, clarity in.
@vitest.dev is the path.
Thanks Alan!
github.com/angular/angu...
I started a collection of resources for @vitest.dev + Svelte / SvelteKit testing. If you know a good learning resource (also Vitest in general), please let me know. fubits.dev/notes/2026-0...
Vitest console output showing 993 tests passed across 3 files
The fact that Vitest can run 1k tests in just 164 ms is mind-blowing.
Flaky tests and memory leaks are the worst.
@vitest.dev now has a flag that catches uncleared intervals, lingering servers, and other async operations leaking across your tests.
Available in the latest 4.1 beta. Big shout out to @ariperkkio.dev from the Vitest team for landing this PR! 🔥
Vitest 4.1 is on the horizon, but we're already looking ahead! What are your main pain points in your testing workflow right now?
Let us know in the Vitest 5 discussion thread!
Terminal output of Vitest's test run results. The results contain error message of asynchronous resource leaking. Code block pointing to a fetch call that is missing await.
In the next version of Vitest you can track leaking asynchronous resources via `--detect-async-leaks` option! Available in v4.1.0-beta.4 release. 🔍
(notice missing await in the example)
👋 @vitest.dev Browser Mode for #Angular is not just a switch — but a different recipe 😉
Let's dive into what's cooking under the hood:
⚙️ How it works (Vitest vs Playwright roles)
🌓 "Partial" vs. 🌕 "Full" Browser Mode
🔌 APIs: userEvent vs. page
🪜 Progressive migration
youtu.be/Pu22JQG6jdg
#testing
What stops you from using @vitest.dev browser mode? 👀
published a new version of the @vitest.dev ansi serializer!
this basically converts many ansi codes to human-readable text for snapshots
🧪 Enjoyed the conversation between @manfredsteyer.bsky.social and @rainerhahnekamp.bsky.social about the future of testing with @angular.dev and @vitest.dev.
I appreciate the recommendation of @analogjs.org for previous versions of Angular & compatibility with IDEs
www.youtube.com/watch?v=1ac9...
🙏
This is huge news!! Super excited to be working with @ariperkkio.dev ❤️
Github organization invitation with text "You've been invited to the Storybook organization!".
Excited to announce that I've officially joined @chromatic.com! My main focus will be working around features related to @vitest.dev 🤝
🧪 `@nuxt/test-utils` v4 is out 🚀
👺 mocking is much more reliable
⚡ works with vitest v4 + Vite's native Module Runner
⚗️ registerEndpoint improvements
much thanks to github.com/yamachi4416 and @adamdehaven.com ❤️
👉 github.com/nuxt/test-u...
let me know how it goes! 🙏
@vite.dev and @vitest.dev crushing the positive sentiment of devs who used it in the State of JS survey 🚀
An example of the code that shows `aroundEach` wrapping every test with `db.transaction` call.
For all your AsyncLocalStorage needs, Vitest 4.1 now supports `aroundEach` and `aroundAll` hooks!
main.vitest.dev/api/hooks#ar...
✨ What's New in ViteLand: January 2026 Recap
◆ Unified redesign across all VoidZero sites
◆ @vite.dev crossed 3 billion npm downloads
◆ @rolldown.rs reached RC status
◆ Lazy Barrel Optimization landed in Rolldown
◆ Oxfmt hit 100% Prettier conformance
◆ ...and more 👀
voidzero.dev/posts/whats-...
The State of JS 2025 results are out!
🏆 Most Adopted Tech → Vitest
🏆 Highest Satisfaction → Vite (98%) & Vitest (97%)
🏆 Highest Interest → Vitest (83%) & Rolldown (80%)
But that's not all!
A thread 🧵
"Vitest 4.1 introduces Test Tags. Left side shows a vitest.config.js code snippet defining three tags: 'frontend' with a description, 'db' with a 60-second timeout, and 'flaky' with conditional retry logic for CI and priority setting. Right side shows CLI filtering examples: vitest --tags-filter="frontend && !flaky", vitest --tags-filter="(frontend || db) && !flaky", and vitest --tags-filter="frontend and flaky". VoidZero and Vitest logos at bottom corners on dark background."
Every test suite eventually categorizes tests: "skip this in CI," "this one is flaky," "that one needs more time." and so on.
Vitest 4.1 (in beta right now) introduces Test Tags: You can now define these categories globally, attach config or behavior and eventually filter what runs.
TIL about the .extend builder pattern to add context to test fixtures in @vitest.dev
Seems super handy for backend testing (setting up servers, database, mocked services etc).
And now with type safety? 😍
A screenshot from the docs showing a new `test.extend` pattern. Provide name of the fixture as the first argument, options in the second and value in the third. Return the value from the function for automatic type inference, and use `onCleanup` hook for an explicit cleanup.
The next @vitest.dev version has a new `test.extend` syntax that supports type inference (including the correct scope)!
main.vitest.dev/guide/test-c...
Use Vitest, but don't use Vite? Vitest 4.1 introduces a new flag to disable Vite module runner entirely, but keep using all the Vitest features you like!
Try it out and let us know what you think:
Test tags are coming to Vitest 4.1 (beta)! And they are powerful 💪
main.vitest.dev/guide/test-t...
The first beta for @vitest.dev 4.1 is out! 🧪
◆ Chai-style spy assertions (`toHaveBeenCalled`, etc.)
◆ `userEvent.wheel()` for browser mode
◆ Enhanced retry options
◆ Disposable returned from `doMock()`
◆ Coverage ignore start/stop hints
◆ and more 👀
Try now by installing vitest@beta
Infographic titled "Vitest's expect.poll" with three bullet points: built-in timeout and retry logic, cleaner than wrapping assertions in vi.waitFor, and perfect for job queues & eventual consistency. Below is a code example showing a test that starts a background export job, then uses expect.poll to repeatedly check getJobStatus(job.id) until it equals 'completed'. VoidZero and Vitest logos at bottom corners.
Did you know @vitest.dev has `expect.poll`? It reruns an assertion until it passes (or times out).
You can configure how many times the `expect.poll` callback should run with custom interval and timeout options!
No need wrapping everything in `vi.waitFor`
More in the docs vitest.dev/api/expect.h...