DEV.co
Open-Source Testing · vitest-dev

vscode

A VS Code extension that integrates Vitest test runner directly into the editor, enabling developers to run, debug, and watch tests without leaving their IDE. It provides inline test results, coverage reporting, and performance metrics for imports.

Source: GitHub — github.com/vitest-dev/vscode
914
GitHub stars
119
Forks
TypeScript
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryvitest-dev/vscode
Ownervitest-dev
Primary languageTypeScript
LicenseMIT — OSI-approved
Stars914
Forks119
Open issues12
Latest releasev1.50.7 (2026-06-29)
Last updated2026-06-29
Sourcehttps://github.com/vitest-dev/vscode

What vscode is

TypeScript-based VS Code extension leveraging the TestController API to provide native test exploration and execution. Supports Node.js and Deno runtimes, debugger integration via port 9229, and coverage collection through child_process or terminal shell spawning.

Quickstart

Get the vscode source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/vitest-dev/vscode.gitcd vscode# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Test-Driven Development Workflow

Developers using Vitest can run individual tests or suites directly from the editor gutter, watch mode on file changes, and see results inline without switching to terminal. Ideal for rapid iteration cycles.

Debugging Test Failures

Right-click context menu allows conditional breakpoints, logpoints, and triggered breakpoints. Debugger attaches via configurable port (default 9229) for step-through debugging of failed assertions.

Code Coverage Visualization

Coverage collection and inline display (requires VS Code 1.88.0+) helps identify untested code paths without manual CLI invocation. Supports viewing coverage reports per test file.

Implementation considerations

  • Requires Node.js >= 18.0.0 and Vitest >= v1.4.0; verify project dependencies match before deployment.
  • Debugger port (default 9229) must be available or configured; check firewall and port conflicts in CI/dev environments.
  • Configuration detection via `process.env.VITEST_VSCODE` allows conditional test config; useful for environment-specific test setup.
  • Shell spawning method (`child_process` vs `terminal`) affects process isolation and environment variable handling; choose based on shell setup complexity.
  • File watcher glob patterns should be tuned to avoid unnecessary reruns on large codebases; default `**/*` may be broad.

When to avoid it — and what to weigh

  • Using Vitest < v1.4.0 — Extension requires Vitest >= v1.4.0 and Node.js >= 18.0.0. Older projects must upgrade dependencies first.
  • VS Code < 1.77.0 — Minimum VS Code version is 1.77.0; older installations cannot use this extension. Coverage features require >= 1.88.0.
  • Non-JavaScript Test Frameworks — Extension is Vitest-specific. Teams using Jest, Mocha, or other frameworks will need alternative extensions or CLI tools.
  • Complex Multi-Workspace Setups Without Configuration — Requires explicit configuration of workspace or root config file paths. Auto-discovery relies on glob patterns; non-standard layouts may need manual setup.

License & commercial use

MIT License (OSI-approved permissive license). Allows unrestricted commercial use, modification, and distribution with attribution.

MIT license permits commercial use without restriction. No vendor lock-in or commercial licensing required. Install from VS Code Marketplace without licensing friction.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

Debugger listens on configurable TCP port (default localhost:9229); ensure `vitest.debuggerAddress` is not exposed to untrusted networks. Execution of arbitrary test CLI arguments via `vitest.cliArguments` should be restricted in shared environments. Shell spawning method may execute environment-specific commands; review shell configuration for injection risks.

Alternatives to consider

Jest Runner (first-class extension)

If project uses Jest instead of Vitest; similar in-editor test execution and debugging features.

Test Explorer UI (generic testing extension)

Multi-framework testing UI; supports various test runners but may lack Vitest-specific optimizations like import duration display.

Vitest CLI + Custom Shell Alias

No IDE integration required; teams preferring terminal-based workflows can use `vitest --watch --reporter=verbose` with custom scripts.

Software development agency

Build on vscode with DEV.co software developers

Install the Vitest extension from the VS Code Marketplace to run and debug tests without leaving your editor. Configure it for your project in minutes.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

vscode FAQ

Can I use this extension with monorepos?
Yes. Use `vitest.workspaceConfig` to point to your Vitest workspace config file, or set `vitest.rootConfig` for single-config projects. Multiple folders in VS Code workspace require explicit path configuration.
What should I do if the extension cannot find Vitest?
Set `vitest.vitestPackagePath` to the path of your Vitest `package.json` in `node_modules`. Verify Vitest >= v1.4.0 is installed. Check glob patterns in `vitest.configSearchPatternInclude` and `vitest.configSearchPatternExclude`.
How does coverage reporting work?
Run tests with coverage from the Testing View or right-click menu. Requires VS Code >= 1.88.0. Coverage is collected by Vitest itself; the extension displays results inline in the editor.
Can I debug tests with custom Node arguments?
Yes. Use `vitest.nodeExecArgs` (for child_process) or `vitest.terminalShellArgs` (for terminal mode). Arguments are passed when spawning the Vitest process or attaching the debugger.

Work with a software development agency

From first prototype to production, DEV.co delivers software development services around tools like vscode. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source testing and beyond.

Streamline Your Testing Workflow

Install the Vitest extension from the VS Code Marketplace to run and debug tests without leaving your editor. Configure it for your project in minutes.