AssertAssert
Guide

Playwright Test Reporting: HTML Reports, CI Integration, and Result Visibility

A test suite that runs but whose results nobody looks at is not providing value. Playwright's reporting system is flexible enough to output results in whatever format your team and CI pipeline need — but the default setup leaves some of that value on the table.

Playwright's built-in reporters

Playwright ships with several reporters out of the box. The list reporter writes a simple pass/fail summary to stdout — useful for quick local feedback. The HTML reporter generates a full interactive report with test timelines, failure screenshots, and trace viewer integration — the most useful format for investigating failures.

The dot reporter and line reporter are compact formats suited for CI environments where log output needs to stay readable. The JSON and JUnit reporters output machine-readable formats for integration with external test management or CI dashboards.

  • html — full interactive report with screenshots, traces, and step details
  • list — detailed pass/fail output to stdout, good for local development
  • dot — minimal CI output; one character per test
  • json — machine-readable; integrates with dashboards and test management tools
  • junit — XML format compatible with Jenkins, GitLab, and most CI systems
  • blob — captures results for later merging with playwright merge-reports

Configuring the HTML reporter

The HTML reporter saves its output to a playwright-report directory by default. Running npx playwright show-report opens it in a browser. The report includes a timeline of each test, screenshots on failure, and a link to the trace viewer for step-by-step replay.

In CI, the most useful pattern is to upload the playwright-report directory as a build artifact and configure the HTML reporter to open automatically or be accessible via the CI job's artifact viewer. GitHub Actions, CircleCI, and most other systems support artifact uploads natively.

Assert's dashboard as a reporting layer

Assert provides a web dashboard that sits on top of your test runs — showing pass/fail history, failure trends, and scenario-level results without requiring you to download and open local HTML reports. For teams running tests on every pull request, the dashboard makes result visibility part of the workflow rather than an afterthought.

FAQ

How do I view Playwright HTML reports?

Run npx playwright show-report after a test run to open the HTML report in your browser. If running in CI, upload the playwright-report directory as a build artifact and access it from your CI provider's artifact viewer. The report includes screenshots, traces, and full step logs for failed tests.

How do I use multiple reporters in Playwright?

Set reporter to an array in playwright.config.ts: reporter: [['html'], ['junit', { outputFile: 'results.xml' }]]. This runs both reporters simultaneously. A common production pattern combines the list reporter (for readable CI output) with the blob reporter (for later merging across shards) and the HTML reporter (for local investigation).

How do I integrate Playwright results with GitHub Actions?

Upload the playwright-report directory using the actions/upload-artifact step. Add a github reporter to your playwright.config.ts reporters array to annotate pull requests with test failure details directly in the GitHub UI. The JUnit reporter can also feed results to GitHub's test summary feature.

Put the workflow in your repo, not in a chat transcript

Assert is strongest when scenarios become durable project assets: readable Markdown in the repo, generated execution underneath, and result inspection in the dashboard.