> ## Documentation Index
> Fetch the complete documentation index at: https://docs.testdino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How TestDino Reports e2e Test Runs

> What @testdino/e2e sends to TestDino while an e2e test run executes: test cases, errors, app logs, walkthroughs, failure classification, and limits.

`@testdino/e2e` sends each test run from the e2e framework by TesterArmy to TestDino while it executes. The test run appears when e2e starts it, each test case is listed as it starts, and its result, errors, logs, and artifacts arrive as it finishes. To install and configure the reporter, see the [E2E](https://docs.testdino.com/cli/testdino-e2e) page.

e2e is an open-source framework for end-to-end tests of web and mobile apps. Use this reporter if your tests live in `*.e2e.ts` files and run with `npx e2e run`.

> [!NOTE]
>
> Real-time streaming, failure details, app logs, walkthroughs, and re-runs need `@testdino/e2e` 1.1.0 or later. Check yours with `npm ls @testdino/e2e`. With 1.0.x, the test run appears once it finishes.

## What appears while the test run executes

| When | What you see on TestDino |
| :- | :- |
| e2e starts the test run | The test run appears on [Test Runs](https://docs.testdino.com/platform/playwright-test-runs), marked running, with the number of test cases it will run. A filtered run (file arguments, `--grep`, tags, a shard, a re-run) counts only the test cases it selected. |
| A test case starts | It is listed as running on the test run's page and in the active run's worker line. |
| A test case finishes | Its result, retries, steps, errors, console output, and artifacts appear. |
| A test case runs for minutes with no other activity | The test run stays marked running. |
| e2e finishes | The test run takes its final status. Walkthroughs, run errors, and test cases in a serial group arrive at this point. |

Test cases that have not started yet are not listed. A Playwright test run lists every test case from the start; an e2e test run lists each one as it begins. Learn how active runs update on the dashboard in [Real-Time Streaming](https://docs.testdino.com/guides/playwright-real-time-test-streaming.md#active-test-runs).

## What TestDino records for each test case

| Data | How it appears |
| :- | :- |
| Attempts | Each e2e attempt is a retry. The last attempt sets the result, so a test case that fails and then passes on retry is flaky. |
| Steps | Each step keeps its e2e action and label, for example `locator.tap getByRole("button", name: "Sign in")`. |
| Errors | The message starts with e2e's error code, for example `ASSERTION_FAILED`. [Error details](#failure-details) add the source line and what e2e saw on screen. |
| Console | `console.log` and `console.error` output from the attempt it ran in, plus the [app's log](#app-logs). |
| Attachments | e2e's artifacts under the names e2e gives them: `screenshot`, `video`, `download`, and `log`. On the last attempt of each test case e2e keeps a trace page for, also a [walkthrough](#walkthroughs). |
| Targets | Each e2e target appears as a project. The [Configuration tab](https://docs.testdino.com/platform/playwright-test-runs/configuration.md) lists them under **Targets**. |

Open a test case to see these on its [test case page](https://docs.testdino.com/platform/playwright-test-cases).

## Failure details

A failed test case's error shows the line of the test file that failed, then what e2e saw at the moment of failure:

| Line | When it appears |
| :- | :- |
| `Page at failure: <address>, <width>×<height>` | When e2e recorded the page. The address keeps its scheme and path, without a password, query string, or fragment. The screen size appears when your e2e version reports it. |
| `Closest matches on screen:` | When a locator found nothing. Lists up to 5 elements that came closest. |
| `AI judgment: <reason>` | When a model checked the step. The failing step shows the same judgment. |

Each line holds at most 1,000 characters. These lines sit in the error's details, not its message, so they do not change how the failure is grouped or classified.

## App logs

What the app under test logged during a test case appears in its **Console**, next to the test case's own output. Each line names its source and the step it happened in:

```text theme={null}
App network warning in locator.tap getByRole("button", name: "Sign in"): POST https://app.example.com/login 401 Unauthorized
```

Errors appear as `stderr`, everything else as `stdout`. Each attempt keeps its newest 200 lines and says how many earlier lines it left out. A URL in a line keeps its address and path, without a password, query string, or fragment. App logs need e2e 0.19.0 or later.

## Walkthroughs

A walkthrough is a step-by-step record of a test case's last attempt: each step and what it did, what the app logged, and the screen at failure. It appears in the **Attachments** of that attempt, named `walkthrough`, for each test case e2e keeps a trace page for. e2e's `trace` setting decides which: by default (`retain-on-failure`), test cases that failed, timed out, were interrupted, or were flaky. Set `trace: 'on'` in your e2e config to keep one for every test case. Expand it to read it, or download it.

Walkthroughs need e2e 0.19.0 or later. They open as text, not in the [trace viewer](https://docs.testdino.com/guides/playwright-trace-viewer.md), which reads Playwright traces only.

## How e2e failures are classified

TestDino sorts each failure by e2e's error code. The category appears on the Failed and Flaky cards of the [run summary](https://docs.testdino.com/platform/test-runs/playwright-failure-summary.md) and on the [Errors tab](https://docs.testdino.com/platform/playwright-test-runs/errors.md).

| e2e error code | Summary card | Errors tab |
| :- | :- | :- |
| `AUTH_CREDENTIAL_UNAVAILABLE`, `AUTH_CREDENTIAL_INVALID`, `SECRET_UNAVAILABLE`, `ENVIRONMENT_UNAVAILABLE`, `APP_UNREACHABLE`, `APP_ALREADY_RUNNING`, `SEED_DATA_MISSING`, `TEST_SETUP_FAILED`, `APP_NOT_OPEN`, `POLICY_DENIED`, `MODEL_UNAVAILABLE` | **Setup issue** | **Setup Issues** |
| `ASSERTION_FAILED` | **Assertion failed** | **Assertion Failures** |
| `LOCATOR_NOT_FOUND`, `LOCATOR_AMBIGUOUS` | **Element not found** | **Element Not Found** |

A **Setup issue** means a step was blocked before it could check the app: a credential was missing or rejected, the app or environment did not answer, seed data was missing, a setup test failed, the app was not open, a policy refused the action, or no AI model was available. The failure points at the test setup, not at the app under test. Other codes are classified from the error text, as for Playwright: a timeout as **Timed out**, a refused connection as **Network error**, and anything else as **Unclassified error**.

## Differences from Playwright test runs

| Area | e2e test runs |
| :- | :- |
| Test case list | Test cases appear as they start, not all at once when the test run begins. |
| Artifacts | PNG, JPEG, WebM, MP4, ZIP, JSON, TXT, and Markdown files up to 50 MB each. A device recording over 50 MB, or one a hosted device service keeps as a link, is listed as unavailable. Anything still uploading 40 seconds after the test run finishes is not uploaded. |
| Traces | A walkthrough in Markdown instead of a Playwright trace, so the trace viewer does not open it. |
| Visual comparison | When an e2e `toHaveScreenshot` check fails (e2e 0.19.0 or later), its expected, actual, and diff images open in TestDino's visual comparison view, as for Playwright. |
| [Test Controls](https://docs.testdino.com/guides/test-controls.md) | Change the build result only under [`testdino-e2e run`](https://docs.testdino.com/cli/testdino-e2e#run-through-testdino-in-ci). With plain `npx e2e run`, a failing quarantined test case still fails the build. |
| [Re-run](https://docs.testdino.com/cli/testdino-e2e#re-run-failed-tests) | Works from the dashboard, from CI, and from your terminal with `npx -p @testdino/e2e testdino-e2e rerun`, for test runs uploaded by 1.1.0 or later. e2e cannot run a setup test alone, so re-running one also runs the test cases that use it. |
| [Automation Releases](https://docs.testdino.com/guides/automation-releases.md) | e2e does not report the filters a test run was started with, such as file arguments or `--grep`. A release cannot tell an e2e test run of part of the suite from a full one, so it shows no warning when part of the suite never ran. |
| CI suggestions | Written for Playwright. They do not apply to e2e test runs. |

## Related

> [card] [E2E](https://docs.testdino.com/cli/testdino-e2e)
>
> Install the reporter, set options, and re-run failed tests

> [card] [Errors tab](https://docs.testdino.com/platform/playwright-test-runs/errors.md)
>
> Group a test run's failures by cause and category


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.