Skip to main content
@testdino/playwright streams Playwright test results to TestDino as a run executes. Results appear on the dashboard during the run, with no separate upload step. Paste the AI prompt below, or follow Installation and Set up.

Prerequisites

  • Node.js >= 18.0.0
  • @playwright/test >= 1.52.0
  • TestDino API token (generate one)
  • Git initialized repository (for commit and branch metadata)

Set up with an AI agent

Use this pre-built prompt to integrate @testdino/playwright into your project.

Open in Cursor

Quick Reference

Installation

View @testdino/playwright on npm ↗.

Set up

Add TestDino to the reporter array in your Playwright config. This is the only entry TestDino needs. Other reporters (html, list) are optional and yours to keep.
playwright.config.ts
Set your token and run tests the way you already do. Results stream to TestDino as the run executes.
Run tdpw test instead of npx playwright test. Same result, no config change.
It wraps npx playwright test, so any Playwright flag passes through, for example npx tdpw test --project=chromium --shard=1/3.

CLI flags

Set the token with -t or the TESTDINO_TOKEN environment variable. All other flags are optional.
These flags belong to tdpw test. Playwright does not define them, except --debug, which tdpw consumes for TestDino logs. Pass Playwright flags through tdpw as usual: npx tdpw test --tags regression,smoke --project=chromium. First non-empty source wins: CLI flag, then testdino.config.ts, then Playwright reporter options, then the environment variable. --split has no config or env equivalent. --coverage on the CLI only sets enabled; include, exclude, and thresholds stay in config. Learn how to set run labels in Run-level tags. Learn how to partition jobs in Split mode.
You passed a TestDino flag to npx playwright test. Playwright does not define --tags, --token, --ci-run-id, --split, --split-id, --coverage, or --no-artifacts, so it exits before the test run starts.Use the TestDino wrapper:
To keep npx playwright test, set the matching environment variable or config field from the table above. For run labels, only tags in the reporter options works without tdpw. --split has no alternative: it is tdpw only.
tdpw consumes --debug for TestDino logs. It does not forward it to Playwright.
TESTDINO_DEBUG=1 npx tdpw test -- --debug enables both.

Config file

Place testdino.config.ts or testdino.config.js in the project root. The same fields work as options on ['@testdino/playwright', { ... }] in playwright.config.
testdino.config.ts
Learn coverage setup in Code Coverage.

Run-level tags

--tags labels the whole test run in TestDino. It does not select which test cases Playwright executes. Test-case tags (@smoke in test code, --grep) stay on Playwright.
--tags is a tdpw flag. TESTDINO_TAGS and tags in testdino.config.ts are also read by tdpw only. To keep npx playwright test, set tags in the Playwright reporter options.
npx playwright test --tags exits with error: unknown option '--tags'. Use npx tdpw test --tags, or tags in the reporter options. Labels set through tdpw (the flag, TESTDINO_TAGS, or testdino.config.ts) reach the test run from version 2.7.6; earlier versions drop them.
First non-empty source wins: CLI flag, then testdino.config.ts, then Playwright reporter options, then TESTDINO_TAGS. These labels appear as run-level chips on Test Runs. They are separate from test annotations.

Sharded runs

Pass the same --ci-run-id to every shard. TestDino groups them into a single logical run on the dashboard.
In the config path, set ciRunId or TESTDINO_CI_RUN_ID and pass --shard to npx playwright test as usual.

Split mode

Sharding needs every job to run the same command. When your jobs differ, for example an API project on one runner and browser tests on another, use split mode instead. Each job tags its results with --split i/N and a shared --split-id, and TestDino merges them into one test run.
--split labels the results. It does not select which test cases run, so assign them yourself with spec paths, --project, or --grep. Requires version 2.3.0 or later. Learn how to build a CI matrix and read the Splits panel in Split mode.

Re-run failed tests

Re-run only the test cases that failed or were flaky in a past test run:
--rerun takes failed, flaky, or failed-and-flaky. Narrow the selection with --test-ids or --exclude-ids. The re-run keeps the original test run’s tags; add more with --rerun-tags (version 2.7.6 or later). Requires version 2.7.0 or later, and Playwright 1.56 or later. An earlier version of the CLI passes the flag through to Playwright, which exits with error: unknown option '--rerun'. Learn how to start one from the dashboard or an AI agent in Re-run failed tests.

On a GitHub Actions retry

From version 2.7.8, when TestDino re-runs failed jobs inside the original GitHub run, each job runs only the test cases that failed in it, with no flag and no change to your command. The job log shows it:
Otherwise the job runs your command unchanged and the log line that starts with TestDino: running the full command on this GitHub retry gives the reason. That happens when a test case has no result from the earlier attempt, when the same Playwright project runs in more than 1 job, when the retry came from GitHub’s own Re-run buttons, when the command already passes --test-list or --list, or when TestDino cannot be reached. See Re-run inside the original GitHub run.

Code coverage

Instrument your app with Istanbul so it exposes window.__coverage__, import the TestDino fixture in your tests, then enable coverage:
Coverage merges across shards automatically. Learn more in Code Coverage.

Environment variables

There is no environment variable for --split or --coverage. --split is command-only. Coverage include, exclude, and thresholds stay in the config file.

What gets collected

Use in CI/CD

Set TESTDINO_TOKEN as a CI secret, keep TestDino in your playwright.config, and run npx playwright test. Each guide below has a full pipeline config with sharding and troubleshooting.
github-svgrepo-com

GitHub Actions

gitlab-logo-500-rgb

GitLab

teamcity-icon

TeamCity

azure-devops

Azure DevOps

Circleci-icon-logo

CircleCI

CodeBuild

AWS CodeBuild

jenkins

Jenkins

Troubleshooting

Set the token via --token, the TESTDINO_TOKEN environment variable, or the reporter option in playwright.config. Confirm it is set:
Generate a new token from API Keys if the issue persists.
Your account reached its monthly quota. Tests continue to run normally. Only streaming to TestDino pauses until the quota resets.Upgrade your plan or wait for the monthly reset.
Expected behavior. If the streaming connection drops, events fall back to HTTP delivery automatically. Your tests are never affected.

Real-Time Test Streaming

How real-time streaming works and when to use it

Generate API Keys

Create and manage tokens for the CLI and CI
Last modified on October 6, 2026