Reporter overview
Brittle ships one reporter package per supported framework:
| Framework | Package |
|---|---|
| Playwright | @brittlehq/playwright-reporter |
| WebdriverIO | @brittlehq/wdio-reporter |
| Jest | @brittlehq/jest-reporter |
| Vitest | @brittlehq/vitest-reporter |
All four share the same options. Per-framework pages cover wiring; this one covers what’s common.
What every reporter sends
Section titled “What every reporter sends”As each test finishes the reporter posts:
- The test name and full title chain (file → describe blocks → test).
- Pass / fail / skipped outcome, plus duration.
- Any failure messages, stack traces, and per-attempt history (for retries).
- Whatever attachments the framework captured. Playwright trace, Playwright/WDIO video, Jest snapshots, and so on.
- Per-test annotations and tags, if your framework supports them.
Sessions stream to the dashboard live; you don’t wait for the whole suite.
Run grouping
Section titled “Run grouping”Multiple test workers, multiple shards, multiple CI jobs all need to
converge on one Run row on the dashboard. The reporter handles
this via a shared runName:
- Set
runNameexplicitly in your reporter config, or - Set the
BRITTLE_RUN_NAMEenv var, or - Let the reporter detect your CI provider’s build ID
(
GITHUB_RUN_ID,BUILDKITE_BUILD_ID,CI_PIPELINE_ID, etc.).
In CI, auto-detection is usually all you need. Locally, you can leave it unset. Parallel workers spawned by the same test runner converge on one row.
Authentication
Section titled “Authentication”Every reporter needs two values to talk to the hub:
| Value | Source |
|---|---|
| Hub URL | url option or BRITTLE_URL env var. |
| Project token | token option or BRITTLE_TOKEN env var. |
Mint the token from Manage → Projects → [your project] → Tokens.
The default scopes (session:create, session:control,
artifact:read) are what every reporter needs. Leave them ticked.
Git auto-detection
Section titled “Git auto-detection”The reporter shells out to git from the working directory the tests
ran in, and posts:
commitShacommitMessagecommitAuthorbranchrepoUrl(parsed fromgit remote get-url origin)
Each of these is overridable explicitly in the reporter config. Set
the field directly when you want CI-provided values (GITHUB_SHA,
GITHUB_REF_NAME) instead of git’s view of the working tree. That’s
common on shallow / sparse checkouts where git rev-parse returns
something unhelpful.
To disable auto-detection entirely, set detectGit: false.
Diagnostics
Section titled “Diagnostics”By default each reporter prints only warnings (missing token, failed upload). For verbose per-test logging:
export BRITTLE_DEBUG=1Useful when triaging “the run finished but nothing shows up on the dashboard.” Safe to leave on in CI if you want richer logs.
Per-framework pages
Section titled “Per-framework pages”Each one is short. A copy-pasteable config block, plus the
framework’s quirks (Playwright’s runMetadata shape, WDIO’s
worker-per-spec model, Jest/Vitest snapshot capture).
For the full table of every option the reporters accept, see Configuration.