Skip to main content
Playwright Test includes several built-in reporters that provide different ways to view test results. Configure reporters in your playwright.config.ts file.

Available Reporters

List Reporter

Displays each test on its own line with real-time progress updates.
import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: 'list',
  // or with options
  reporter: [['list', { printSteps: true }]],
});
printSteps
boolean
default:"false"
Print individual test steps as they execute. Can also be set via PLAYWRIGHT_LIST_PRINT_STEPS environment variable.

Line Reporter

A single-line reporter that updates the current test status in place.
export default defineConfig({
  reporter: 'line',
});
Best suited for CI environments or when you want minimal output.

Dot Reporter

A concise reporter that prints a character for each test.
export default defineConfig({
  reporter: 'dot',
});
Symbols:
  • . (green) - Test passed
  • F (red) - Test failed
  • T (red) - Test timed out
  • ° (yellow) - Test skipped
  • ± (yellow) - Flaky test
  • × (gray) - Test will retry

HTML Reporter

Generates an interactive HTML report with detailed test results.
export default defineConfig({
  reporter: 'html',
  // or with options
  reporter: [['html', {
    outputFolder: 'playwright-report',
    open: 'never',
  }]],
});
outputFolder
string
default:"'playwright-report'"
Directory for the HTML report. Can be set via PLAYWRIGHT_HTML_OUTPUT_DIR environment variable.
open
'always' | 'never' | 'on-failure'
default:"'on-failure'"
When to open the HTML report in a browser. Can be set via PLAYWRIGHT_HTML_OPEN environment variable.
host
string
Host to bind the report server to. Can be set via PLAYWRIGHT_HTML_HOST environment variable.
port
number
Port to bind the report server to. Can be set via PLAYWRIGHT_HTML_PORT environment variable.
attachmentsBaseURL
string
default:"'data/'"
Base URL for attachments in the report. Can be set via PLAYWRIGHT_HTML_ATTACHMENTS_BASE_URL environment variable.

JSON Reporter

Outputs test results in JSON format for programmatic consumption.
export default defineConfig({
  reporter: [['json', { outputFile: 'results.json' }]],
});
outputFile
string
Path to the output JSON file. Can be set via PLAYWRIGHT_JSON_OUTPUT_FILE environment variable.

JUnit Reporter

Generates a JUnit-compatible XML report.
export default defineConfig({
  reporter: [['junit', { outputFile: 'results.xml' }]],
});
outputFile
string
Path to the output XML file. Can be set via PLAYWRIGHT_JUNIT_OUTPUT_FILE environment variable.
stripANSIControlSequences
boolean
default:"false"
Remove ANSI control sequences from output. Can be set via PLAYWRIGHT_JUNIT_STRIP_ANSI environment variable.
includeProjectInTestName
boolean
default:"false"
Include the project name in test case names. Can be set via PLAYWRIGHT_JUNIT_INCLUDE_PROJECT_IN_TEST_NAME environment variable.

GitHub Actions Reporter

Integrates with GitHub Actions to show test results inline.
export default defineConfig({
  reporter: 'github',
});
Automatically activated when running in GitHub Actions.

Blob Reporter

Outputs test results in a binary format for merging reports from sharded test runs.
export default defineConfig({
  reporter: 'blob',
});
Used with the merge-reports CLI command for parallel test execution across multiple machines.

Using Multiple Reporters

Combine multiple reporters for different outputs:
export default defineConfig({
  reporter: [
    ['list'],
    ['json', { outputFile: 'test-results.json' }],
    ['html'],
  ],
});

Environment Variables

Many reporter options can be configured via environment variables:
# HTML Reporter
PLAYWRIGHT_HTML_OUTPUT_DIR=my-report
PLAYWRIGHT_HTML_OPEN=always
PLAYWRIGHT_HTML_HOST=0.0.0.0
PLAYWRIGHT_HTML_PORT=9323

# JSON Reporter
PLAYWRIGHT_JSON_OUTPUT_FILE=results.json

# JUnit Reporter
PLAYWRIGHT_JUNIT_OUTPUT_FILE=results.xml
PLAYWRIGHT_JUNIT_STRIP_ANSI=1

# List Reporter
PLAYWRIGHT_LIST_PRINT_STEPS=1

Build docs developers (and LLMs) love