Setting the file. One moment.
Subchapter 13.5
references/core-cli.mdMarkdown4 KBView on GitHub
Start Vitest in watch mode (dev) or run mode (CI):
vitest # Watch mode in dev, run mode in CI
vitest foobar # Run tests containing "foobar" in path
vitest basic/foo.test.ts:10 # Run specific test by file and line numberRun tests once without watch mode:
vitest run
vitest run --coverageExplicitly start watch mode:
vitest watchRun tests that import specific files (useful with lint-staged):
vitest related src/index.ts src/utils.ts --runRun only benchmark tests:
vitest benchList all matching tests without running them:
vitest list # List test names
vitest list --json # Output as JSON
vitest list --filesOnly # List only test filesInitialize project setup:
vitest init browser # Set up browser testingList tags defined in config without running tests:
vitest --list-tags # Human-readable list
vitest --list-tags=json # JSON output# Configuration
--config <path> # Path to config file
--project <name> # Run specific project
# Filtering
--testNamePattern, -t # Run tests matching pattern
--tagsFilter <expr> # Run tests by tag expression, e.g. "db && !flaky"
--changed # Run tests for changed files
--changed HEAD~1 # Tests for last commit changes
--dir <path> # Limit test discovery to a directory
# Reporters
--reporter <name> # default, verbose, tree, dot, json, html, junit, minimal, blob
--reporter=json --outputFile=report.json
# Coverage
--coverage # Enable coverage
--coverage.provider v8 # Use v8 provider
--coverage.reporter text,html
# Execution
--shard <index>/<count> # Split tests across machines
--bail <n> # Stop after n failures
--retry <n> # Retry failed tests n times
--shuffle # Randomize test order
--no-file-parallelism # Run test files one at a time
# Watch mode
--no-watch # Disable watch mode
--standalone # Start without running (v4: runs matched files if a filter is passed)
# Environment
--environment <env> # jsdom, happy-dom, node
--globals # Enable global APIs
# Debugging
--inspect # Enable Node inspector
--inspect-brk # Break on start
# Output
--silent # Suppress console output
--no-color # Disable colors{
"scripts": {
"test": "vitest",
"test:run": "vitest run",
"test:ui": "vitest --ui",
"coverage": "vitest run --coverage"
}
}Split tests across multiple machines. The blob reporter writes to .vitest/blob/ by default:
# Machine 1
vitest run --shard=1/3 --reporter=blob --outputFile=reports/blob-1.json
# Machine 2
vitest run --shard=2/3 --reporter=blob --outputFile=reports/blob-2.json
# Merge all blobs into a final report
vitest --merge-reports=reports --reporter=junit --reporter=defaultIn watch mode, press:
a - Run all testsf - Run only failed testsu - Update snapshotsp - Filter by filename patternt - Filter by test name patternq - Quitprocess.env.CI is set)--run flag to ensure single run (important for lint-staged)--testTimeout) and kebab-case (--test-timeout) work--no- prefix--tagsFilter (tags must be declared in config) — see features-test-tags--merge-reports and --reporter=blob do not work in watch mode