TestDino's real-time streaming reporter and CLI for Playwright test execution
npm install @testdino/playwright

Real-time streaming reporter and CLI for Playwright that captures comprehensive test execution data and streams it to TestDino for advanced analytics and insights.
Website | Documentation | Get Your Token
- Real-time Streaming - See your test results as they happen
- Rich Metadata - Automatic collection of Git, CI, System, and Playwright environment data
- Distributed Testing - Full support for sharded test execution across multiple machines
- Production-Ready - Built-in retry logic and graceful error handling
- Zero Configuration - Works out of the box with sensible defaults
- Flexible Integration - Use as a CLI wrapper or native Playwright reporter
- Complete Visibility - Captures test runs, individual tests, steps, errors, and console output
``bash`
npm install --save-dev @testdino/playwright
Requirements:
- Node.js >= 18.0.0
- @playwright/test >= 1.50.0
The tdpw CLI wraps Playwright's test runner, automatically configuring the TestDino reporter while passing all other options directly to Playwright.
`bash`
npx tdpw test [testdino-options] [playwright-options] [test-files]
Basic usage:
`bashSet your token (get one at testdino.com)
export TESTDINO_TOKEN=your_token
With Playwright options:
Any option not recognized by TestDino is passed through to Playwright:
`bash
Run specific test file
npx tdpw test tests/login.spec.tsRun in headed mode with specific browser
npx tdpw test --headed --project=chromiumRun tests matching a pattern
npx tdpw test --grep "authentication"Run with multiple workers
npx tdpw test --workers=4Run in Playwright UI mode
npx tdpw test --uiRun with retries
npx tdpw test --retries=2Sharded execution
npx tdpw test --shard=1/3
`Common Playwright options:
| Option | Description |
| ------------------- | ----------------------------- |
|
--headed | Run in headed browser mode |
| --ui | Open Playwright UI mode |
| --debug | Run with Playwright Inspector |
| --project= | Run specific project |
| --grep= | Filter tests by title |
| --workers= | Number of parallel workers |
| --retries= | Retry failed tests |
| --shard= | Shard tests across machines |
| --timeout= | Test timeout |
| --reporter= | Add additional reporters |For all Playwright options, see the Playwright CLI documentation.
$3
Alternatively, add TestDino directly to your Playwright configuration:
`typescript
// playwright.config.ts
import { defineConfig } from '@playwright/test';export default defineConfig({
reporter: [
['@testdino/playwright', { token: process.env.TESTDINO_TOKEN }],
['html'], // Combine with other reporters
],
});
`Then run tests with standard Playwright command:
`bash
npx playwright test
`Configuration
$3
| Option | CLI Flag | Environment Variable | Description |
| ----------- | ---------------- | -------------------- | --------------------------------------------------------------------------------------------------- |
|
token | --token, -t | TESTDINO_TOKEN | Authentication token (required) |
| debug | --debug | TESTDINO_DEBUG | Enable debug logging |
| ciRunId | --ci-run-id | - | Group sharded test runs |
| artifacts | --no-artifacts | - | Upload artifacts (screenshots, videos, traces). Enabled by default; use --no-artifacts to disable |$3
Create
testdino.config.ts (or .js) in your project root for persistent settings:`typescript
// testdino.config.ts
export default {
token: process.env.TESTDINO_TOKEN,
debug: false,
};
``javascript
// testdino.config.js
module.exports = {
token: process.env.TESTDINO_TOKEN,
};
`Dynamic configuration:
`typescript
export default function () {
return {
token: process.env.TESTDINO_TOKEN,
debug: !process.env.CI,
};
}
`$3
Settings are applied in this order (highest to lowest):
1. CLI flags (
--token)
2. Config file (testdino.config.ts)
3. Playwright config (reporter options)
4. Environment variables (TESTDINO_TOKEN)CI/CD Integration
$3
`yaml
name: E2E Tests
on: [push, pull_request]jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npx playwright install --with-deps
- name: Run tests
env:
TESTDINO_TOKEN: ${{ secrets.TESTDINO_TOKEN }}
run: npx tdpw test
`$3
`yaml
e2e-tests:
image: mcr.microsoft.com/playwright:v1.50.0-jammy
script:
- npm ci
- npx tdpw test
variables:
TESTDINO_TOKEN: $TESTDINO_TOKEN
`$3
TestDino automatically detects shard information:
`yaml
GitHub Actions matrix example
jobs:
test:
strategy:
matrix:
shard: [1/3, 2/3, 3/3]
steps:
- run: npx tdpw test --shard=${{ matrix.shard }}
`Metadata Collection
TestDino automatically collects environment metadata at the start of each test run:
| Category | Information Collected |
| ---------- | ----------------------------------------------- |
| Git | Branch, commit, author, message, repository URL |
| CI | Provider, build ID, PR details (GitHub Actions) |
| System | OS, CPU, memory, Node.js version |
| Playwright | Version, workers, projects, shard info |
Metadata collection is non-blocking. Tests continue even if some metadata is unavailable.
Troubleshooting
$3
`
Token is required but not provided
`Set your token via CLI flag, environment variable, or config file.
$3
`
ā TestDino Execution Limit Reached
`You've reached your monthly test execution quota. The error message shows:
- Your current plan and monthly limit
- How many executions you've used
- Remaining executions available
- When your quota resets
Solutions:
1. Upgrade your plan at testdino.com/pricing
2. Wait for your monthly quota to reset
3. Contact support if you need immediate assistance
Note: Tests will still run; only streaming to TestDino is affected.
$3
`
WebSocket connection failed, using HTTP fallback
`This is normal. TestDino automatically uses HTTP fallback. Tests are not affected.
$3
Enable detailed logging:
`bash
npx tdpw test --debug
`FAQ
Q: How do I get a token?
Sign up at testdino.com and follow the Getting Started Guide.
Q: Can I use TestDino with other Playwright reporters?
Yes. TestDino works alongside HTML, JUnit, or any other reporter.
Q: What happens if I reach my quota limit?
Your tests continue to run as normal. TestDino will display a detailed message showing your usage and provide upgrade options. Only streaming to TestDino is paused until your quota resets.
Q: What if TestDino server is unavailable?
Tests run normally. Only event streaming is affected.
Q: Does this work with Playwright VSCode extension?
Yes. Configure TestDino in
playwright.config.ts` for VSCode integration.- Documentation
- Getting Started
- Email Support
---
Copyright 2025 TestDino. All rights reserved.