Test reports your whole team can actually see.
Host your Playwright, Cypress, Vitest, and pytest reports in one place and share them with a link. No CI access required, no per-seat fees, unlimited users on every plan.
No credit card on Free. Your first upload is one CLI command in CI.
When CI fails, the report is an artifact zip only people with CI access can open
-
Everyone without CI access waits for a developer to relay the result
QA, product managers and clients hear about a failure only when someone with CI access copies it out of the log.
-
An HTML report from CI has to be downloaded, unzipped and served locally
Everyone who wants to read a Playwright HTML report repeats the same four steps on their own machine. Gaffer hosts that report at a URL.
-
Most test dashboards bill per user, including people who only read reports
A ten-person team that adds two QA reviewers pays for twelve seats. On Gaffer the price stays the same.
- Open the workflow run (needs a CI login)
- Download playwright-report.zip
- $ unzip playwright-report.zip
- $ npx playwright show-report Serving HTML report at http://localhost:9323
One link per test run, no login to open it
Upload a report from CI or your terminal and the run gets its own page: pass and fail counts, duration, pass rate and coverage, with its branch and commit.
Viewers need no CI login and no Gaffer account. Paste the link into Slack, a pull request or an email to a client.
See how sharing works →Upload reports from CI with two workflow steps
Install the CLI, then put gaffer test -- in front of your test command. It prints a summary in the job log and uploads the report. Open the run in Gaffer, click Share and send the link.
- name: Install Gaffer CLI
run: curl -fsSL https://app.gaffer.sh/install.sh | sh
- name: Run tests
run: gaffer test -- npm test
env:
GAFFER_TOKEN: ${{ secrets.GAFFER_TOKEN }} gaffer 41 passed 1 failed 3 skipped 12.4sHealth: 87 (good) ^ Slow: p95 245.3msNew failures: 1 src/billing.test.ts > charge cardCoverage: 78.5% lines (1234/1572)Synced: 1 run uploaded Gaffer parses the report and coverage files your tools already write
- Test reports
-
- Playwright
- Jest
- Vitest
- JUnit XML
- pytest
- Cypress
- CTRF
- .NET TRX
- HTML reports
- Coverage
-
- LCOV
- Cobertura
- JaCoCo
- Clover
Gaffer compares your runs to find flaky tests and coverage drops
See which tests are flaky and how often they flip
Gaffer lists tests that pass and fail on the same code, with each one's flip rate and last flip.
Group failing tests by the error they share
Twelve tests broken by one bad fixture show up as one pattern, not twelve failures.
A health score, P95 duration and flaky count per project
The score runs 0 to 100 and combines pass rate, stability and trend.
Line, branch and function coverage, gated on PRs
Upload LCOV, Cobertura, JaCoCo or Clover next to your tests. Gaffer can fail a pull request's commit status when coverage drops below your threshold.
Flat pricing, unlimited users
Free
- 500 MB storage
- 7-day report retention
- Unlimited users
- Basic analytics
- Slack notifications
- Webhook notifications
Pro
Recommended- 10 GB storage
- 30-day report retention
- Unlimited users
- Advanced analytics
- Slack notifications
- Webhook notifications
- Priority support
Team
- 50 GB storage
- 90-day report retention
- Unlimited users
- Advanced analytics
- Slack notifications
- Webhook notifications
- Priority support
Questions about plans? Email [email protected].
Send the next failed CI run to your team as a link
Unlimited users on every plan, so adding QA or a client costs nothing. Want to look first? Open the demo.