.agents/skills/vitest/references/core-cli.md
vitestStart 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 number
vitest runRun tests once without watch mode:
vitest run
vitest run --coverage
vitest watchExplicitly start watch mode:
vitest watch
vitest relatedRun tests that import specific files (useful with lint-staged):
vitest related src/index.ts src/utils.ts --run
vitest benchRun only benchmark tests:
vitest bench
vitest listList all matching tests without running them:
vitest list # List test names
vitest list --json # Output as JSON
vitest list --filesOnly # List only test files
vitest initInitialize project setup:
vitest init browser # Set up browser testing
# Configuration
--config <path> # Path to config file
--project <name> # Run specific project
# Filtering
--testNamePattern, -t # Run tests matching pattern
--changed # Run tests for changed files
--changed HEAD~1 # Tests for last commit changes
# Reporters
--reporter <name> # default, verbose, dot, json, html
--reporter=html --outputFile=report.html
# 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
--sequence.shuffle # Randomize test order
# Watch mode
--no-watch # Disable watch mode
--standalone # Start without running tests
# 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:
# Machine 1
vitest run --shard=1/3 --reporter=blob
# Machine 2
vitest run --shard=2/3 --reporter=blob
# Machine 3
vitest run --shard=3/3 --reporter=blob
# Merge reports
vitest --merge-reports --reporter=junit
In 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