Reporter Combos
When to Use
Use this when configuring multiple reporters for different audiences — CI pipeline, PR reviewers, dashboard systems, or automated tooling.
Decision
| Audience | Reporter |
|---|---|
| Local dev | list (terminal) + html (triage) |
| GitHub PR diff annotations | github |
| Jenkins / GitLab test tab | junit |
| Custom dashboards | json |
| Machine consumption (Claude, scripts) | json |
| Triage humans | html (always include) |
| Sharded CI runs | blob on each shard, merge to html |
Pattern
Typical CI combo:
reporter: process.env.CI
? [['github'], ['html', { open: 'never' }], ['junit', { outputFile: 'junit.xml' }]]
: [['list'], ['html']],
Machine-readable + human-readable:
reporter: [
['list'], // Live terminal output
['html'], // Human triage
['json', { outputFile: 'results.json' }], // Machine consumption
]
Common Mistakes
- Wrong: single reporter in CI → Right: either humans can't triage or machines can't parse; combine both
- Wrong:
htmlandjunitwith the sameoutputFilepath → Right: JUnit needs a file path; HTML needs a folder — different keys - Wrong: omitting
githubreporter on GitHub Actions → Right: missing inline PR annotations is a lost UX win
See Also
- Enabling
- Configuration Reference
- Reference: Playwright Reporters
- Reference: Playwright Trace Viewer