Understanding the report
The reporter turns story metadata and test results into Markdown and HTML. Each scenario gets a status icon and optional headings, metadata, and source links.
Report Output what this code generates
Scenario status icons
Section titled “Scenario status icons”Scenarios show a status icon based on step results, with this precedence:
- ❌ — Any step failed
- ✅ — All steps passed
- 📝 — All steps are todo (or fixme on Playwright)
- ⏩ — All steps are skipped
- ⚠️ — Mixed (e.g. some passed, some skipped)
So a scenario is marked failed if any step failed, even if others passed or were skipped.
Heading levels
Section titled “Heading levels”- When scenarios are grouped by file (default), each scenario title uses heading level 3 (
###). The file group uses level 2 (##). - When grouped by none (
groupBy: "none"), scenario titles use level 2 (##).
You can override with scenarioHeadingLevel / storyHeadingLevel in reporter options (see each framework’s reference).
What appears in the report
Section titled “What appears in the report”- Scenario title — The scenario heading normally comes from the test title used with
story.init(...). If you attach explicit story metadata in a framework-native pattern, that story title is what the report renders. - Steps — Each
story.given/story.when/story.then(andstory.and,story.but) as a bullet. Framework modifiers (skip/todo/fails etc.) are reflected in the step label (e.g. (skipped), (todo)). - Tags and options — If you pass
{ tags: [...], meta: {...} }tostory.init(..., options), they can be included (see reporter options). - Step documentation — Notes, key-value pairs, code blocks, tables, and links added via
story.note,story.json,story.table, etc. appear under the corresponding step. - Source link — If
permalinkBaseUrlis set (or in GitHub Actions with the built-in fallback), each scenario can get a “Source: file” line.
Report Output what this code generates
Enabling or hiding elements
Section titled “Enabling or hiding elements”Reporter options (under markdown in framework reporter config) control what’s included:
- Status icons:
includeStatusIcons: true(default) — show ✅❌⏩ etc. for scenario status. - Errors in Markdown:
includeErrors: true(default) — include failure messages for failed scenarios. - Summary table:
includeSummaryTable: trueto add a table with start time, duration, and counts. - Metadata block:
includeMetadata,metadata.date,metadata.packageVersion,metadata.gitSha. - Source links:
includeSourceLinks: trueandpermalinkBaseUrl(or rely on GitHub Actions fallback).
See Vitest reporter options, Jest reporter options, and Playwright reporter options for the full list.