# Share a TestCafe HTML Report — Browser Results Without the Artifact Hunt

Canonical: https://commareports.com/share-testcafe-report
Published: 2026-08-31

> testcafe --reporter html writes one page of end-to-end results. Publish it to Comma for a URL with screenshots attached, anchored comments and a revision per run.

# Share a TestCafe HTML report

TestCafe's console output is good and completely ephemeral. On CI it becomes
a build log; the screenshot it took of the moment the assertion failed becomes
a file in a workspace that gets wiped after the job.

An HTML reporter plus a URL fixes both.

## Write the report

```bash
npm i -D testcafe-reporter-html
npx testcafe chrome tests/ --reporter spec,html:report.html
```

`spec` keeps the live console output; `html:report.html` writes the artifact.
Add screenshots on failure so there is something to look at:

```bash
npx testcafe chrome tests/ \
  --reporter spec,html:report.html \
  --screenshots path=screenshots,takeOnFails=true
```

## Publish it

Drag `report.html` and the `screenshots/` folder together into
[the app](https://commareports.com/):

- `report.html` becomes the **report body**.
- The screenshots upload as assets and their `<img src="...">` references are
  rewritten to the uploaded copies — which is what makes the failure evidence
  survive the trip.

From CI, PATCH the entry HTML and POST the screenshots as assets against the
same report id:

```bash
curl -fsS -X PATCH "https://commareports.com/api/v1/reports/$REPORT_ID" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html report.html \
        --arg title "E2E — $GITHUB_REF_NAME" '{title: $title, html: $html}')"
```

See the [API docs](/docs/api) for the asset endpoint.

Run it with `if: always()` — TestCafe exits non-zero on failure, and the red
run is the one worth publishing.

## What review adds

- **Anchored threads** on the failing fixture — "this selector races the
  animation". See [commenting on HTML](/comment-on-html).
- **Revisions**, so an intermittent failure has a visible history instead of a
  disputed one.
- **Access per report** — private, team, domain-gated, or named reviewers.
  See the [sharing model](/docs/sharing).

## Limits

- **Entry HTML: 5 MB.** Assets: 25 MB per file, 250 MB and 500 files total.
  Screenshots are the budget here — a full-page PNG per failing test adds up.
- **60 requests/minute per token.**

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision
history.

**[Publish a test report →](https://commareports.com/)**

### Related

- [Share a Cypress report](/share-cypress-report) · [Share a Playwright report](/share-playwright-report)
- [Share a Mochawesome report](/share-mochawesome-report) · [Share an Allure report](/share-allure-report)
- [Publish from CI](/docs/ci) · [Share a mobile test report](/share-android-test-report)
