Appearance
Introduction
EasyTrace collects the results of your automated tests — from CI and from developers' machines — and shows them in a dashboard: which runs failed, which failures are new, which tests are flaky, and how coverage moves.
Nothing plugs into your test runner. The flow is always:
- Your test runner writes a report file (JSON or JUnit XML) — a flag or one line of config.
- When the tests finish, the EasyTrace CLI reads the report files and uploads them.
- The dashboard shows the run a few seconds later.
text
vitest / jest / playwright / cypress ──► report file ──► easytrace CLI ──► EasyTraceThe CLI never fails your build over an upload problem: it prints an EasyTrace: … warning and keeps your tests' exit code.
Concepts
| Term | Meaning |
|---|---|
| Organization | Workspace that owns projects, members and usage. Everyone gets a personal organization when they first sign in with GitHub; invite teammates by GitHub username. |
| Project | One codebase (usually one repository). Runs, test history and project tokens belong to a project. |
| Suite | A named group of tests uploaded together, e.g. unit, e2e, or one per package (server, web). Each suite of a build becomes its own run. |
| Build | One CI pipeline execution, or one easytrace run / easytrace upload on a machine. All suites uploaded by it share a build id, and every run links to the other suites of its build. |
| Run | The results of one suite in one build: counts, failures, flaky tests, coverage, artifacts. |
| Shard | Part of a suite run on another machine (parallel CI jobs). Shards with the same build id and suite merge into one run. |
| Origin | CI or Local. Runs uploaded with a personal login (easytrace login), or without a detected CI, show a Local chip and who uploaded them. |
| Baseline | The latest finished run of the same suite on the project's default branch. A failure that passed in the baseline is a new failure; coverage deltas are measured against it too. |
Supported report formats
| Format | Written by |
|---|---|
vitest-json | Vitest --reporter=json |
jest-json | jest --json --outputFile=… |
playwright-json | Playwright json reporter |
mochawesome | Cypress with the mochawesome reporter (json=true) |
junit | Almost every tool (JUnit XML) |
The format is detected from the file's content. See Writing report files.
Two ways to authenticate
| Developer machine | CI | |
|---|---|---|
| Credential | easytrace login once per machine (approve in the browser) | Project token in the EASYTRACE_TOKEN secret |
| Project | project in easytrace.config.json | Decided by the token |
| Shown as | Local, uploaded by you | CI |
Details: Credentials and tokens.