All skills
onmax avatar

/vitest

@de09c7b official
by Maxonmax/nuxt-skills715 stars
38

Vitest fast unit testing framework powered by Vite with Jest-compatible API. Use when writing tests, mocking, configuring coverage, or working with test filtering and fixtures.

Use this Skill: https://skilld.dev/gh/onmax/nuxt-skills/vitest

This session only. Nothing lands on disk.

referencesfeatures-reporters.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Reporters

Select reporters via --reporter or reporters config. Configuring reporters replaces the default list — spread configDefaults.reporters to keep them.

import { configDefaults, defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    reporters: ['verbose', ['junit', { suiteName: 'UI tests' }]],
    // keep defaults and add one:
    // reporters: ['json', ...configDefaults.reporters],
  },
})

Default Selection

When reporters is unset, Vitest auto-selects:

  • default for normal terminal runs
  • minimal (alias agent) when it detects an AI coding agent — only failed tests + errors, no summary or passing logs, optimized to cut token usage
  • github-actions is added when process.env.GITHUB_ACTIONS === 'true'

Built-in Reporters

Reporter Use
default Summary + collapses passing files; prints full tree for single/failing file
verbose One line per finished test (flat list in v4); only reporter that shows annotations on pass
tree Like default but always shows each test (the old v3 verbose)
dot One dot per test; details only for failures
minimal / agent Failures only; best for AI/LLM workflows
junit JUnit XML (templated, see below)
json Jest-compatible JSON; includes coverageMap when coverage enabled
tap / tap-flat TAP (nested / flat)
html Interactive UI report (needs @vitest/ui)
blob Serialized results for --merge-reports
github-actions Workflow annotations + job summary
hanging-process Lists processes preventing exit (debugging)

v4 removed the basic reporter (equivalent to ['default', { summary: false }]). The old verbose flat behavior moved here; use tree for the nested view.

Output Files

vitest --reporter=json --outputFile=./test-output.json
defineConfig({
  test: {
    reporters: ['junit', 'json'],
    outputFile: { junit: './junit.xml', json: './report.json' },
  },
})

JUnit Templating

reporters: [['junit', {
  suiteNameTemplate: '{title}',     // {title} {filename} {basename} {displayName}
  classnameTemplate: '{classname}', // {classname} {title} {suitename} {filename} ...
  titleTemplate: '{title}',
  ancestorSeparator: ' > ',
  addFileAttribute: true,
}]]

{filename} is the relative path (use {basename} for the bare name). Templates can also be functions receiving all variables.

HTML Report (v5 paths)

The HTML reporter writes a directory via outputDir (default .vitest); the entry is <outputDir>/index.html. Use singleFile: true for a self-contained shareable file (large; coverage not inlined).

reporters: [['html', { singleFile: true }]]

Blob & Merge (CI/sharding)

Blobs default to .vitest/blob/. Label environments with VITEST_BLOB_LABEL or the reporter label option:

vitest run --reporter=blob --outputFile=reports/blob-1.json
vitest --merge-reports=reports --reporter=junit --reporter=default

Blob reports don't include file attachments — merge attachmentsDir (.vitest/attachments/) separately. --reporter=blob/--merge-reports don't work in watch mode.

Key Points

  • Configuring reporters replaces defaults — spread configDefaults.reporters to keep them
  • The minimal/agent reporter is auto-selected for AI agents and minimizes token usage
  • Use tree for the nested per-test view (old v3 verbose)
  • v5 artifacts (blob, attachments, HTML) live under .vitest/
<!-- Source references: - https://vitest.dev/guide/reporters - https://vitest.dev/config/reporters -->

Source: SKILL.md on GitHub

No alerts9d5 checks · Risk SAFE
  • Gen Agent Trust Hub9d

    The skill is a comprehensive documentation set for the Vitest testing framework, providing configuration examples, API references, and CLI usage. No security issues were identified.

  • Socket9d

    No alerts

  • Snyk9d

    Risk: LOW · No issues

  • Runlayer7mo

    1/6 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at de09c7b. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated last week
Other metadata
metadata
{
  "author": "Anthony Fu",
  "version": "2026.6.22",
  "source": "Generated from https://github.com/vitest-dev/vitest, scripts located at https://github.com/antfu/skills"
}

README badge

README badge for onmax/nuxt-skills/vitest

Configures and runs Vitest for unit and integration testing in Vite projects, with Jest-compatible syntax for writing test suites, mocking modules and timers, and executing tests in parallel. Use this when setting up test infrastructure for Vue, React, or Svelte components, or when writing type tests with TypeScript.

Generated from the current SKILL.md.

Does Vitest work with Vue, React, and Svelte components?
Yes. Vitest can test components from Vue, React, and Svelte. For component-specific patterns, the skill references a separate `vue` skill.
What environments does Vitest support for testing?
Vitest supports `node` and `jsdom` environments by default, with additional options for browser mode and type testing covered in the advanced reference.
Can I use Jest syntax with Vitest?
Yes. Vitest has a Jest-compatible API, so you can use familiar patterns like describe, it, expect, vi.fn, and vi.mock without syntax changes.
Does this skill cover mocking and test fixtures?
Yes. The skill includes reference files for mocking modules and timers with vi.fn and vi.mock, as well as test hooks and fixtures.

Generated from the current SKILL.md. These answers refresh after source changes.