# Share an AVA Test Report — TAP Out, One Link Back

Canonical: https://commareports.com/share-ava-report
Published: 2026-09-15

> AVA speaks TAP. Pipe it through tap-xunit, convert to HTML, and publish to Comma so a concurrent Node suite becomes a URL instead of a terminal buffer.

# Share an AVA test report

AVA's output is designed for the person who ran it: concise, concurrent,
assertion diffs in colour. None of that is a file. When a teammate asks what
broke, the honest answer is usually a paste of ANSI escape codes.

AVA's TAP output is the way out, because TAP already has converters.

## TAP → JUnit → HTML

```bash
npm i -D tap-xunit
pip install junit2html

npx ava --tap | npx tap-xunit > junit.xml || true
junit2html junit.xml ava.html
```

Two hops, both boring, no reporter to maintain against AVA's internals. The
`|| true` keeps a failing run alive long enough to publish; keep a separate
`npx ava` step if the build should fail.

## Publish it

Drag `ava.html` into [the app](https://commareports.com/), or from CI:

```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 ava.html \
        --arg title "AVA — $GITHUB_REF_NAME" '{title: $title, html: $html}')"
```

Same id every run. The link never changes; the revisions behind it are the
record.

## Coverage in the same job

AVA has no built-in coverage, so most suites run it under `c8`:

```bash
npx c8 --reporter=html npx ava
```

That writes a `coverage/` folder — publish it as its own report and you have
two stable URLs, one for the run and one for the tree. See
[sharing a coverage report](/share-coverage-report).

## What the URL is for

- **Anchored threads** on a failing assertion, so the reply lands on the
  assertion rather than in a thread that scrolls away. See
  [commenting on HTML](/comment-on-html).
- **Revisions**, which is how a flake stops being an argument.
- **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.
- **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 Jest report](/share-jest-report) · [Share a Vitest report](/share-vitest-report)
- [Share a Node test report](/share-junit-report) · [Share a Jasmine report](/share-jasmine-report)
- [Share a Bun test report](/share-bun-test-report) · [Publish from CI](/docs/ci)
