Skip to content

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 | --help

login, logout, whoami ​

CommandDoesExit
loginSign this machine in through the browser (details). --no-browser only prints the link. Refused in CI.0 signed in, 1 denied / expired / in CI
logoutRevoke this machine's session on the server and delete it locally (locally even when the server can't be reached).0
whoamiPrint @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-runRun the tests and parse the reports, upload nothing
--strictExit 1 when the tests passed but the upload failed
--debugLog 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.

OptionDefault
--suite <name>EASYTRACE_SUITE, else defaultWith files: the suite name. Without: only these suites (repeatable)
--project <id>project in the configProject for a login upload
--format <f>autovitest-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>jestFramework of a JUnit report (JUnit doesn't say which runner wrote it)
--framework-version <v>from the report
--shard <i/n>from CIThis upload is shard i of n
--build-id, --branch, --commit, --commit-message, --pr <n>from CI or gitOverride the detected metadata
--token, --api-url, --dry-run, --strict, --debugAs 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.

OptionDefault
<file>coverage-final.json or coverage-summary.json
--suite <name>EASYTRACE_SUITE, else defaultMust match the shards' suite
--build-id <id>from CIMust match the shards' build id
--root <dir>git rootAbsolute paths in the file become relative to it
--token, --project, --api-url, --dry-run, --strict, --debugAs for upload