# Feature catalog — vitest-dev/vitest

> Canonical page: https://codevetter.com/unpack/vitest/feature-catalog

# Feature catalog — vitest-dev/vitest

Scanned commit 4ee66c021e0592c886dbab727f0f8da9366f99ab (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The inspected public surface spans test authoring, command-line execution, project selection, browser testing, and result inspection. Assertions, mocking, fixtures, and snapshots integrate with the same runner lifecycle. Coverage and reporter outputs support both local feedback and CI consumption. The catalog groups related capabilities into eight areas and is bounded by the inspected sources.
- CLI commands include run, related, watch/dev, bench, init, doctor, and list; init accepts only browser, while list branches between collected tests and files-only output. — [packages/vitest/src/node/cli/cac.ts#L170-193](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/cli/cac.ts#L170-L193) [packages/vitest/src/node/cli/cac.ts#L340-351](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/cli/cac.ts#L340-L351) [packages/vitest/src/node/cli/cac.ts#L367-388](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/cli/cac.ts#L367-L388)
- Public APIs export describe/it/test/suite, before/after and around hooks, completion hooks, and artifact recording; test.extend supports fixture definitions with scoped dependency restrictions. — [packages/vitest/src/public/index.ts#L66-77](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/public/index.ts#L66-L77) [test/e2e/test/scoped-fixtures.test.ts#L31-65](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/test/e2e/test/scoped-fixtures.test.ts#L31-L65)
- The public assertion surface exports Chai, assert, expect, and vi; vi exposes fake timers, spies, and module mocking, and built-in environments include node, jsdom, happy-dom, and edge-runtime. — [packages/vitest/src/public/index.ts#L32-37](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/public/index.ts#L32-L37) [packages/vitest/src/integrations/vi.ts#L129-136](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/integrations/vi.ts#L129-L136) [packages/vitest/src/integrations/vi.ts#L258-271](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/integrations/vi.ts#L258-L271) [packages/vitest/src/integrations/env/index.ts#L7-17](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/integrations/env/index.ts#L7-L17)
- Snapshots support external files, inline source updates, and raw files; custom composable matchers include standard, file, and domain snapshot helpers. — [packages/snapshot/src/port/state.ts#L410-438](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/snapshot/src/port/state.ts#L410-L438) [packages/vitest/src/integrations/snapshot/chai.ts#L343-369](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/integrations/snapshot/chai.ts#L343-L369) [packages/vitest/src/integrations/snapshot/chai.ts#L417-462](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/integrations/snapshot/chai.ts#L417-L462)
- Projects can nest through container configurations and expand into browser-instance and benchmark variants; CLI selection includes related files, filename/location filters, and sequencer-based sharding. — [packages/vitest/src/node/projects/resolveProjects.ts#L82-108](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/projects/resolveProjects.ts#L82-L108) [packages/vitest/src/node/cli/cac.ts#L257-289](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/cli/cac.ts#L257-L289) [packages/vitest/src/node/pool.ts#L67-87](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/pool.ts#L67-L87)
- Browser testing integrates provider initialization and bounded session scheduling, with registered commands for filesystem operations, screenshots, screenshot matching, and trace recording. — [packages/browser/src/node/project.ts#L93-107](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/browser/src/node/project.ts#L93-L107) [packages/vitest/src/node/pools/browser.ts#L286-315](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/pools/browser.ts#L286-L315) [packages/browser/src/node/commands/index.ts#L6-17](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/browser/src/node/commands/index.ts#L6-L17)
- Coverage supports v8, Istanbul, and a custom provider module; built-in browser loading selects a /browser provider entrypoint, and run finalization generates and reports coverage. — [packages/vitest/src/utils/coverage.ts#L48-78](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/utils/coverage.ts#L48-L78) [packages/vitest/src/utils/coverage.ts#L81-98](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/utils/coverage.ts#L81-L98) [packages/vitest/src/node/core.ts#L1091-1096](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/core.ts#L1091-L1096)
- Results are available through dashboard, file details, coverage, browser, and trace UI components, plus JSON, JUnit, TAP, GitHub Actions, and blob reporters; mergeReports replays saved runs. — [packages/ui/client/pages/index.vue#L4-24](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/ui/client/pages/index.vue#L4-L24) [packages/vitest/src/node/reporters/index.ts#L40-54](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/reporters/index.ts#L40-L54) [packages/vitest/src/node/core.ts#L698-739](https://github.com/vitest-dev/vitest/blob/4ee66c021e0592c886dbab727f0f8da9366f99ab/packages/vitest/src/node/core.ts#L698-L739)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
