← All posts
Guide

Reading a run: how results are organized

A test run produces more than a green or red badge. It produces a hierarchy: one run status on top, a set of scenario rows underneath, and — attached to each scenario — the screenshots, video, trace, and logs that explain what the browser actually did. Once you know how that structure is laid out, triage stops being a hunt through files and becomes a top-down read.

Two levels of status

TestVibe reports status at two levels, and reading them in order is the whole trick.

A run can be marked failed even when most of its scenarios passed. That is the point of separating the two levels — the run status is a signal that at least one scenario or setup step needs attention, and the rows tell you which. Start at the top, then drill down.

StateMeaning
PassedThe run or scenario completed successfully.
FailedAt least one scenario failed, or the run could not complete.
CancelledThe run was stopped before it finished.
SkippedA scenario was intentionally not executed.
Queued or in progressStill active; the final result is not ready.
UnavailableNot enough result data to show the row or artifact yet.

The run detail at a glance

Open Runs and select a run. The run detail view pulls status, rows, charts, and evidence into one place so you rarely have to leave it.

A completed TestVibe run detail: summary tiles, a status chart, the configuration chip, the Features/Images/Videos/Network/Console/Artifacts tabs, grouped scenario rows, and a scenario's per-artifact panel on the right
A completed TestVibe run detail: summary tiles, a status chart, the configuration chip, the Features/Images/Videos/Network/Console/Artifacts tabs, grouped scenario rows, and a scenario's per-artifact panel on the right

The top of the view is oriented around summary tiles and charts:

AreaWhat it tells you
Summary tilesOverall status, duration, selected files, and pass/fail counts.
ChartsPatterns across status, groups, duration, and the slowest scenarios.
Features tabIndividual scenario rows, grouped, with failed rows called out.
Images / Videos tabsBrowser evidence captured during the run.
Artifacts tabEvery file the run uploaded, each downloadable.

Scenarios, groups, and per-configuration rows

The Features tab is the body of the report. Scenario rows are nested under the feature group they belong to — a sign-in group, a checkout group — so a cluster of failures in one area reads as a cluster instead of a scattered list.

One detail trips people up the first time: the row count is not always the same as the scenario count. If you selected more than one Run Configuration in the composer, each scenario runs once per configuration, and each run produces its own row. The math is scenarios × configurations. Run two scenarios across a desktop-Chromium config and a mobile-WebKit config and you get four rows, not two. That is what makes "only the mobile configuration fails" a legible signal — the same scenario passed on desktop and failed on mobile, side by side.

Rows also fill in progressively. At the very start of a run, TestVibe may show only the selected feature files; the detailed executable rows appear after the cloud test session builds the execution plan, then update live as Playwright reports each result.

Artifacts are attached to the scenario that produced them

This is where the structure pays off. Every screenshot, video, trace, and log is grouped by the scenario that produced it, so you don't have to match cryptic filenames by hand. Open a scenario row and its evidence is right there, in the order you want to read it:

LayerWhat it shows
ErrorThe Playwright error text, assertion output, and failure source.
LocationThe spec file and configuration where the failure occurred.
Final screenshotThe browser state at the end of the scenario.
VideoThe browser session leading up to the result.
TraceThe action-by-action Playwright recording.

Read it top to bottom. The error usually names the problem; the location tells you which spec and which configuration; the screenshot confirms whether the browser was even on the right page. When a screenshot shows the expected page but the assertion still failed, the expectation is probably too strict rather than the app being broken — a distinction the screenshot alone makes obvious.

For a failed row, Debug with AI opens the full trace and docks an assistant that starts diagnosing the failure automatically. For a passed or skipped row, the same evidence opens through Open Playwright trace. If a scenario has no trace, that action simply isn't shown.

Logs, console, and network

When the screenshot and video show what happened but not why, the trace carries the deeper layers. Inside the Playwright trace viewer you can walk each action, inspect the DOM snapshot around it, read console errors matched to the exact moment they fired, and see the network requests and responses near the failing step. The run detail surfaces Console and Network as their own tabs too, so you can scan browser errors for the whole run without opening a single trace.

Trace availability depends on the run configuration — many teams keep traces only for failed tests to avoid storing large artifacts for every pass. If a trace is missing, that is usually the reason, not a bug. The same is true for screenshots and video: a configuration that saves evidence only on failure won't leave artifacts on passing rows.

A read that scales

The structure rewards a fixed reading order: confirm the run status, find the failed rows in Features, open the row, check the screenshot, and open the trace only when the screenshot isn't enough. Because artifacts already sit under their scenario, each step is one click deeper rather than a filename search. When you need to hand a failure to a teammate, every run has its own deep link, and the Download menu exports the whole run — scenarios, statuses, and artifact links — as JSON, CSV, Excel, PDF, or PNG.

Want to see a run detail with your own app's evidence attached to each scenario? Get early access, or read the full Review Results guide.

Early access

Ready for tests that write themselves?