• Stars
    star
    746
  • Rank 60,823 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

VS Code extension for Vitest


Vitest for VSCode Logo

Vitest for VSCode


This extension is powered by vscode testing api.

Features

  • Run/debug vitest tests in vscode
  • Watch mode is supported 🎊. Test reruns are blazing fast

Watch Mode

Requirements

  • Require VSCode's version >= July 2021 (version 1.59).
  • Require Vitest's version >= v0.12.0

Config

  • vitest.enable: This plugin will try to detect whether the current project is set up with Vitest to activate itself. When it failed, you can enable the plugin manually
  • vitest.nodeEnv: The env passed to runner process in addition to process.env
  • vitest.commandLine: The command line to start vitest tests. It should have with the ability to append extra arguments. For example npx vitest or yarn test --.(This is a workspace setting. Do not change it in the user setting directly, which will affect all the projects you open)
  • vitest.include: Include glob for test files. Default: [\"**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}\"]
  • vitest.exclude: Exclude globs for test files. Default: [\"**/node_modules/**\", \"**/dist/**\", \"**/cypress/**\", \"**/.{idea,git,cache,output,temp}/**\"]
  • vitest.debugExclude: Automatically skip files covered by these glob patterns. Default: [\"<node_internals>/**\", \"**/node_modules/**\"]

Screenshots

Filter tests by status

Debug

Inspect console output

FAQ

How can I use it in monorepo?

It's not well supported yet. But you can use VS Code workspace as a workaround for now. Each folder of the workspace can have its own vitest extension config.

How can I use this extension when tests are under a sub directory?

You can use VS Code command add folder to workspace to add the sub directory. The extension should work fine.

test.each is not working

Dynamic test name is not supported yet. This extension currently relies on the babel parser to calculate the positions of tests statically.

Related issue: #133