Appearance
CLI commands
bash
easytrace login [--api-url <url>] [--no-browser]
easytrace logout [--api-url <url>]
easytrace whoami [--api-url <url>]
easytrace init [--project <id>] [--suite <name>=<glob>]... [--coverage <name>=<file>]... [--api-url <url>] [--force]
easytrace run [options] -- <command> [args...]
easytrace upload [<file|glob>...] [options]
easytrace coverage <file> [options]
easytrace --version | --helplogin, logout, whoami
| Command | Does | Exit |
|---|---|---|
login | Sign this machine in through the browser (details). --no-browser only prints the link. Refused in CI. | 0 signed in, 1 denied / expired / in CI |
logout | Revoke this machine's session on the server and delete it locally (locally even when the server can't be reached). | 0 |
whoami | Print @user on <api>, checking that the session still works. | 0, or 1 when not signed in / expired |
init
Writes easytrace.config.json. See the config file.
run
Runs the command, then uploads every suite of the config whose report this run wrote, as one build. Exits with the command's exit code. See Running and uploading.
| Option | |
|---|---|
--suite <name> | Only these suites of the config (repeatable) |
--project <id> | Project for a login upload (default: project in the config) |
--token <token> | Same as EASYTRACE_TOKEN |
--api-url <url> | Same as EASYTRACE_API_URL |
--dry-run | Run the tests and parse the reports, upload nothing |
--strict | Exit 1 when the tests passed but the upload failed |
--debug | Log each request (same as EASYTRACE_DEBUG=1) |
Build, branch, commit and PR overrides for run go through environment variables.
upload
Without files: uploads every suite of the config (or the --suite ones) now, as one build. With files: uploads those files as one run of --suite.
| Option | Default | |
|---|---|---|
--suite <name> | EASYTRACE_SUITE, else default | With files: the suite name. Without: only these suites (repeatable) |
--project <id> | project in the config | Project for a login upload |
--format <f> | auto | vitest-json, jest-json, playwright-json, mochawesome, junit |
--attachments <dir> | — | With files: folder of screenshots / videos / traces (repeatable) |
--coverage <file> | — | With files: coverage to upload with the results |
--framework <f> | jest | Framework of a JUnit report (JUnit doesn't say which runner wrote it) |
--framework-version <v> | from the report | |
--shard <i/n> | from CI | This upload is shard i of n |
--build-id, --branch, --commit, --commit-message, --pr <n> | from CI or git | Override the detected metadata |
--token, --api-url, --dry-run, --strict, --debug | As for run |
Exit code: 0, even when the upload fails (a warning is printed) — unless --strict.
coverage
Attaches merged coverage to an existing run, found by build id and suite — for sharded runs. See Coverage.
| Option | Default | |
|---|---|---|
<file> | coverage-final.json or coverage-summary.json | |
--suite <name> | EASYTRACE_SUITE, else default | Must match the shards' suite |
--build-id <id> | from CI | Must match the shards' build id |
--root <dir> | git root | Absolute paths in the file become relative to it |
--token, --project, --api-url, --dry-run, --strict, --debug | As for upload |