Skip to content

Tests tab

The Tests tab is where the Test Explorer opens. It lists every test Testver discovered by scanning your project, and clicking any one opens its detail view.

The Tests tab of the Test Explorer

At the top of the toolbar are four chips that filter the list by the most recent result of each test. Exactly one is active at a time; click another to switch. The active chip is highlighted in its status colour.

ChipIconShowsActive colour
AllEvery test, regardless of status.Brand (default)
PassedGreen checkOnly tests whose last run passed.Emerald
FailedRed XOnly tests whose last run failed.Red
No RunEmpty circleOnly tests that have never been run (run count is zero).Grey

When your project contains more than one test framework, a Filter funnel icon and a dropdown appear in the toolbar. The dropdown lists All Frameworks plus one entry per detected framework (sorted alphabetically). Pick one to restrict the list to just that framework’s suites.

Separate from the pass/fail result, every test carries a script status describing where it sits in its authoring lifecycle. It shows as a small coloured pill on each row (and in the test’s detail header), and you set it yourself — it never changes from running the test.

StatusColourTypical meaning
DraftBlueBeing written / not ready yet. The default for a test with no status set.
ActiveGreenComplete and in regular use.
In ReviewAmberWritten, awaiting review or approval.
DeprecatedRoseBeing retired — kept for now but no longer maintained.
  • Change one test’s status. Click the pill (it shows a ▾) and pick a status from the menu — on the row or in the detail header. It saves immediately.
  • Filter by status. The All Statuses dropdown in the toolbar narrows the list to one status; picking a status auto-expands the matching suites (just like the Passed/Failed/No Run chips).
  • Bulk-set. Select several tests with their checkboxes, then use Set status (N) in the top-right actions to apply one status to all of them at once.

If any test in the project carries tags, a Tags button appears on the right of the toolbar. It shows a count in parentheses when tag filters are active (for example Tags (2)) and turns cyan while it or any tag filter is active.

Click Tags to open the tag cloud beneath the toolbar. It is labelled Filter by tags: and lists every tag found across all tests, each with its usage count in parentheses, sorted most-used first. Clicking a tag toggles it as a filter; active tags turn cyan and show a small X. A test matches if it has any of the selected tags (OR logic). A Clear all link removes every tag filter at once.

When you close the cloud but still have tags selected, a slim active tag chips row stays visible (a tag icon followed by the selected tags). Each chip can be clicked to remove that one tag, and a Clear link removes them all.

The strip of pills summarizes the tests currently in view. Crucially, the numbers respect your active filters — when any status, framework, tag, or search filter is on, the stats recompute from only the filtered tests; with no filters they reflect the whole project.

StatIcon / colourHow it is computed
TotalPlainCount of all tests in the current (filtered) view.
PassedGreen checkTests whose last status is passed.
FailedRed XTests whose last status is failed.
No RunGrey circleTests with a run count of zero.
Pass RateColour-gradedPassed divided by tested tests (Total minus No Run), as a percentage to one decimal. Green at 90%+, amber at 70–89%, red below 70%, and a dash - when there are no tests.

Just above the suite list sits a Search box (placeholder Search suites, tests, or tags…). It filters live as you type and matches against the test name, the suite name, and the test’s tags. A small X clears it. Searching auto-expands all matching suites.

Next to the search box are four sort buttons. Click one to sort by that field; click the same button again to flip between ascending and descending. The active sort button is highlighted and shows an up or down arrow (an inactive button shows a faint up-down icon). Sorting reorders both the suites and the tests within them.

ButtonSorts by
NameAlphabetical by test/suite name (the default).
StatusBy last result, ordered failed first, then passed, then skipped, then no-run.
RunsBy how many times the test has run (suites by total runs).
RateBy pass rate. Tests/suites with no runs sort to the bottom.

Each test row has a checkbox (visible on hover, or filled when selected). Tick one or more tests to enter multi-select mode. A slim selection bar appears under the search row showing N selected, Select All, and Deselect All; and two bulk actions appear in the top-right toolbar: Set status (N) and Run Selected (N).

ControlLocationWhat it does
Select All (N)Selection barSelects every test currently passing the filters (N is that count).
Deselect AllSelection barClears the entire selection.
Set status (N)Top-right actionsApplies one script status (Draft / Active / In Review / Deprecated) to every selected test at once.
Run Selected (N)Top-right actionsBuilds a single framework-appropriate command that targets exactly the checked tests and runs them together. After launching, the selection is cleared.

Run Selected groups the chosen tests by framework, picks the largest group, and emits the right command for it — for example npx playwright test -g "...", npx jest -t "...", pytest "file::name", mvn test -Dtest="Suite#test", dotnet test --filter "...", robot --test "...", and so on. Test names are escaped where the framework treats the filter as a regex.

The Export button (download icon, with a chevron) opens a small menu offering CSV and Excel, each labelled with the number of tests that will be exported. If you have tests selected, a header reads N selected and the export is limited to your selection; otherwise it exports everything currently passing the filters. Files are named testver-tests-YYYY-MM-DD with the matching extension.

The CSV export is a single flat table. The Excel export is a workbook with three sheets: a Tests sheet (the same columns as CSV), a Summary sheet (Total Tests, Passed, Failed, No Run, Pass Rate, Frameworks — all computed from just the exported tests), and a Tags sheet (each tag with its test count, present only if the exported tests carry tags).

Column (Tests sheet)Meaning
Test NameThe test’s name.
SuiteThe suite (file/describe) it belongs to.
FileThe source file path.
FrameworkThe framework it is written for.
StatusLast result, or no run.
Run CountTotal executions recorded.
Pass CountHow many runs passed.
Fail CountHow many runs failed.
Pass RatePass count / run count as a percentage, or - if never run.
TagsAll tags, separated by ; (CSV) or , (Excel).
DescriptionThe test’s description, if any.
ModifiersAny modifiers (skip/only/todo/fixme/slow), joined.

The main area is a stack of suite cards — one per file. Each card is collapsible and carries, from left to right:

ElementDescription
Expand chevronRight-pointing when collapsed, down-pointing when expanded. Click anywhere on the header to toggle.
Folder iconAn amber open-folder icon marking the suite.
Suite nameThe file/suite name (truncated with a hover tooltip showing the full name).
Pass/total fractionFor example 7/8 — passed tests over total tests. Green when all pass, grey otherwise.
Mini progress barA tiny bar split green (passed) and red (failed) proportional to results.
Run-suite buttonA small Play icon that appears on hover. Clicking it runs every test in the suite file (see Troubleshooting for how this differs from a single-row run).

Expand a suite to reveal its test rows. Each row is clickable (opening the Detail View) and contains, from left to right:

ElementDescription
CheckboxFor multi-select. Hidden until you hover the row, or shown filled (brand-coloured) when ticked. Clicking it toggles selection without opening the detail view.
Status iconGreen check (passed), red X (failed), grey minus (skipped), or empty circle (no run).
Test nameThe test’s name, truncated with a hover tooltip for the full text.
Modifier badgesSmall coloured badges for any modifiers (see table below).
Tag chipsUp to three cyan tag chips; extra tags collapse into a +N indicator.
Script status pillThe lifecycle status (Draft / Active / In Review / Deprecated), colour-coded, with a ▾ to change it inline. Aligned into its own column.
Owner / modifiedThe git owner (avatar + name) and how long ago the test was last modified — or an uncommitted marker. Hidden by the privacy switch.
Run history dotsA small row of up to six dots approximating recent results (green = pass, red = fail). Hidden when the test has never run.
Run countFor example 5x — how many times the test has run. Shown only when there is a last status and at least one run.
Run buttonA Play icon appearing on hover; clicking it opens the test’s Detail View ready to run (the detail panel handles the actual execution).

The modifier badges decode as follows:

BadgeColourMeaning
SKIPAmberThe test is marked to be skipped (from the skip flag).
onlyBlueThe test is focused — only it (and other only tests) would run.
todoPurpleA placeholder test marked as not yet implemented.
fixmeRedThe test is known-broken and flagged to be fixed.
slowAmberThe test is marked slow (longer timeout / known to be lengthy).

Clicking any test row opens the full-screen Detail View for that test. From top to bottom it has a back bar, a header, run controls, a tab bar, and the active tab’s content.

The top strip holds a Back to Tests link (left arrow) that returns you to the List View, a divider, and then the suite’s name (with a file icon) for context.

The header presents the test at a glance:

  • A large status tile — green/red/grey background with the matching status icon.
  • The test name as the heading.
  • The script-status pill (Draft / Active / In Review / Deprecated) — click it to change the status right from the detail view.
  • A file:line link (for example tests/login.spec.ts:42) with an external-link icon. Clicking it opens that exact location in the Project Explorer in a new browser tab.
  • An Ask AI about this test button in the top-right corner, which hands the test off to the AI Assistant.
  • When the test has run: the run count (for example 12 runs) and the pass rate (colour-graded green/amber/red).
  • A tags / modifiers row repeating SKIP, the modifier badges, and the full set of tag chips.
  • The test’s description, shown in italics, if one exists.

If the test has a runnable command, an action row sits below the header:

ControlBehaviour
Run TestLaunches the test. While it runs the button becomes Stop.
StopCancels the in-progress run.
Command pillShows the command Testver will execute, tagged Auto (generated) or Custom (when you have configured a custom single-test command in settings).
Copy buttonCopies the command to your clipboard (shows a green check briefly on success).
Mobile device pickerFor mobile/Appium tests only: a local-and-cloud device picker (parity with the Runner). Until you pick a device — and an app, for cloud — Run Test stays disabled with a tooltip explaining what is missing.

A tab bar exposes six views of the test. The Output tab shows a status badge (a pulsing dot while running, a green check or red X when done), and Mapped TCs shows a count badge when mappings exist.

TabWhat it shows
StepsThe human-readable steps of the test — Cucumber scenario steps (with data tables and Examples), or inferred Action/Assert/Setup steps for code-based tests.
SourceThe actual test source code in a read-only editor; for Cucumber, the resolved step-definition code for each step.
RunsThe execution history of this test, with summary cards, a timeline, source filters, and drill-down into any past run.
OutputLive console output and progress of the current/most-recent run, plus post-run failure details.
Mapped TCsManual test cases mapped to this script (from Script Mapping), with a viewer for each case’s steps.
MethodsThe framework methods (page objects, helpers, utilities) this test uses, directly or transitively, from the Code Map index.

For Cucumber tests this lists the scenario steps, each numbered and connected, with a colour-coded Given/When/Then/And/But keyword badge and the step text. If a step has a data table it is rendered inline. For Scenario Outlines, an Examples table follows, showing every parameter combination.

For code-based tests, Testver derives a human-readable step list from the source (each step tagged Action, Assert, Comment, or Setup). While it is parsing you see Loading test steps…. If no steps can be inferred, it suggests checking the Source tab instead.

Shows the test’s source code in a read-only Monaco editor with the correct language highlighting and line numbers offset to match the real file. A metadata bar above the code shows the file path, the line range, the framework, and a Go to Definition button that opens the file at that line in the Project Explorer.

For Cucumber tests the Source tab is different: it shows, per scenario step, the matching step-definition code (file:line, the method name, and the source), with a N of M steps resolved counter and a per-step Go to Definition button. Steps whose definition cannot be found show a Step definition not found notice.

This is the test’s complete result history. When the test has runs, three summary cards appear at the top: Total Runs, Pass Rate (colour-graded), and Failures. If a last-used browser is recorded, a line notes it.

Below that, Execution History opens with a row of up to twenty coloured timeline dots (green/red/grey). Hovering a dot shows its status and timestamp; clicking a dot opens that run’s full execution detail.

If this test has run on more than one source, a Filter: row of toggle chips appears — Local plus any cloud grids it ran on (Sauce Labs, BrowserStack, LambdaTest). Chips only appear for sources this test actually used. The filter is multi-select; with nothing selected, all runs are shown.

Under the dots is a list of runs, 20 per page. Each entry shows the status icon and label, the duration, a Local Device or cloud-provider badge, and browser information. When a single run produced several instances (multi-browser fan-out or a Scenario Outline), the row shows an instance count plus per-browser icons. Each entry is clickable to open the full run detail.

Pagination. When the test has more than 20 runs, a pager appears below the list showing “Showing 1–20 of 26 runs” with Prev / Next buttons and a page indicator. Changing a source filter returns you to the first page.

Dates are relative. Instead of a bare calendar date, each run shows when it happened in plain language:

ShownMeaning
Today (5 mins ago)Ran earlier today — with just now, N mins ago, or N hrs ago precision.
YesterdayRan the previous day.
Mon, Aug 1Anything older. The year is added when it isn’t the current year.

Hover any date to see the exact timestamp, down to the second.

Drilling into a run shows a Back to History header (with that run’s status and timestamp) and the full execution detail. If that run produced cloud artifacts, its Cloud Artifacts card offers Video, Logs, and Session — the video opens in an in-app player, the same one the Results screen uses. When a run produced multiple matching instances, a selector row lets you switch between them — labelled Examples: with parameter chips for Cucumber outlines, or Runs: with browser chips otherwise. Helpful messages cover the cases where the test was renamed/removed or the run data is no longer available.

Before any run, this tab is an empty prompt: No test output yet — Run the test to see live output here. When you start a run, the view auto-switches here.

While running, an execution header shows a spinner and Running… with an elapsed-seconds counter, a live progress bar (green/red split), the current test number, running pass/fail tallies, and the name of the test currently executing. Console output streams live below in a terminal-style pane with ANSI colours preserved (stderr lines in red).

When the run finishes, a compact summary line replaces the progress band — colour-tinted by pass rate — showing Run Complete or Run Failed, the elapsed time, total/passed/failed/skipped counts, and the pass rate. It offers View Full Results (jumps to the Results screen for this run) and a Dismiss button.

Below the summary, a Failed Tests panel expands each failure with its screenshot (click to enlarge in the viewer), the error message (with a copy button), a collapsible stack trace, a per-step pass/fail breakdown, and — for Playwright — Download Trace and Open in Trace Viewer links. If there were no failures but screenshots exist, a Screenshots thumbnail strip is shown instead.

Shows the manual test cases mapped to this script file (created in Script Mapping). If there are none, an empty state explains how to create mappings. Otherwise the mappings are split into Mapped to this test and Other mappings in <file>.

Each mapped case shows its title, ID, a priority badge, a type badge, a sync-status badge (Synced / Case Updated / Script Updated / Script Missing), and an automation-status badge (Automated / Manual). An eye button opens a modal with the case’s preconditions and a Test Steps table (#, Action, Expected Result, Test Data).

Lists the framework methods — page objects, helpers, utilities — this test uses, directly or transitively, drawn from the Code Map index. While analyzing it shows Analyzing usage…. If none are found (for example a test using only built-in framework calls, or helpers that cannot be resolved statically), it says so.

When there are methods, a count line precedes the list, and — if there are more than four — a filter box lets you narrow by method name, class, or file. Each row shows the method name, its class, a role badge, and its file:line, with three actions: open in Project Explorer, open in Code Map · Inventory, and copy the method name.