- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip coder
- uip context-grounding
- uip docsai
- uip function
- uip guardrails
- uip llm-configuration
- uip llm-gateway
- uip maestro authoring
- uip maestro registry
- uip model-hub
- activities find
- activities get-default-xaml
- analyze
- analyzer-rules list
- build
- cleanup
- data-fabric-entities install
- data-fabric-entities list
- files diff
- get-library-object-repository
- get-object-repository
- init
- instances list
- pack
- packages inspect
- packages install
- packages versions
- publish
- remote
- restore
- run, debug & execution
- settings
- studio start
- templates search
- test-data add-entity
- test-data add-queue
- test-data add-variation
- tm
- uia
- validate
- workflow-examples get
- workflow-examples list
- uip tasks
- uip traces
- uip traces feedback
- Migration
- Reference & support
uip tm report
Generate a structured verdict summary for a completed test execution, or export an execution report file in Excel, PDF, or JUnit format, using `uip tm report`.
uip tm report summarizes and exports test execution reports. report get produces a structured summary of a completed execution: counts, pass rate, duration, and every failed test case with the assertion message that explains the failure. The output serves as a human-scannable dashboard line or a machine-readable verdict for CI pipelines. report export asks Test Manager to build a report file (Excel, PDF, or JUnit) for one execution, or PDFs of chosen test case results.
Synopsis
uip tm report get --execution-id <uuid> (--project-key <key> | --project-id <id> | --test-set-key <key>) [--query <expr>]
uip tm report export (--project-key <key> | --project-id <id>) (--execution-id <uuid> [--format <format>] | --test-case-log-ids <uuid...>) [--time-zone <iana-name>] [--wait --output-file <path> [--overwrite] [--timeout <seconds>] [--poll-interval <seconds>]]
uip tm report get --execution-id <uuid> (--project-key <key> | --project-id <id> | --test-set-key <key>) [--query <expr>]
uip tm report export (--project-key <key> | --project-id <id>) (--execution-id <uuid> [--format <format>] | --test-case-log-ids <uuid...>) [--time-zone <iana-name>] [--wait --output-file <path> [--overwrite] [--timeout <seconds>] [--poll-interval <seconds>]]
All verbs honor the global options and the standard exit codes.
uip tm report get
Get a summary for a completed test execution. The command:
- Fetches the execution's stats (
passed,failed,none,duration, timing). - Pages through the failed test case logs.
- For each failed log without an
infostring, fetches its assertions and concatenates the messages of the failed ones. - Returns one JSON envelope with the summary plus a
FailedTestslist keyed by test case name.
The command exits 0 whenever it produces the summary, whether the run passed or failed. Turning "failed tests present" into a non-zero CI exit is the caller's job (branch on .Data.Failed). See Exit-code behavior on executions for the recommended three-step pipeline.
Arguments
None.
Options
-
--execution-id <uuid>(required) — execution to summarize. Get this fromuip tm testsets runoutput. -
--project-key <key>— owning project key. -
--project-id <id>— owning project ID. Use instead of--project-key.Pass
--project-id,--project-key, or--test-set-key. When you pass more than one,--project-idis used first, then--project-key, then the project prefix of--test-set-key. -
--test-set-key <key>— test set key (for example,DEMO:42); the project key is derived from the prefix. -
--query <expr>— jq-style filter applied to theDatapayload. The filtered value replacesDatain theReportGetenvelope. Supports field access (.Field,.Field.Nested) and object construction ({key: .Field}).
Examples
# simplest
uip tm report get --execution-id a1b2c3d4-0000-0000-0000-000000000001 --project-key DEMO
# scripting-friendly — pick a subset
uip tm report get \
--execution-id a1b2c3d4-0000-0000-0000-000000000001 \
--project-key DEMO \
--query '{total: .TotalTests, passed: .Passed, failed: .Failed}'
# simplest
uip tm report get --execution-id a1b2c3d4-0000-0000-0000-000000000001 --project-key DEMO
# scripting-friendly — pick a subset
uip tm report get \
--execution-id a1b2c3d4-0000-0000-0000-000000000001 \
--project-key DEMO \
--query '{total: .TotalTests, passed: .Passed, failed: .Failed}'
Data shape (default output)
{
"Code": "ReportGet",
"Data": {
"ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
"TestSetName": "Smoke Suite",
"TotalTests": 10,
"Passed": 8,
"Failed": 2,
"Skipped": 0,
"PassRate": "80%",
"StartTime": "2025-04-15T10:00:00.000Z",
"EndTime": "2025-04-15T10:02:15.000Z",
"Duration": "00:02:15",
"FailedTests": [
{ "TestCaseName": "Login flow", "Error": "Selector not found" },
{ "TestCaseName": "Logout flow", "Error": "Timeout" }
]
}
}
{
"Code": "ReportGet",
"Data": {
"ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
"TestSetName": "Smoke Suite",
"TotalTests": 10,
"Passed": 8,
"Failed": 2,
"Skipped": 0,
"PassRate": "80%",
"StartTime": "2025-04-15T10:00:00.000Z",
"EndTime": "2025-04-15T10:02:15.000Z",
"Duration": "00:02:15",
"FailedTests": [
{ "TestCaseName": "Login flow", "Error": "Selector not found" },
{ "TestCaseName": "Logout flow", "Error": "Timeout" }
]
}
}
| Field | Meaning |
|---|---|
TotalTests | Passed + Failed + Skipped. |
Skipped | The execution's None count (test case logs with no result). |
PassRate | Percentage string, for example "80%". |
StartTime, EndTime | ISO 8601 timestamps from the execution stats; empty when not set. |
Duration | Formatted HH:MM:SS. |
FailedTests[].Error | The test case log's info field if present; otherwise a ; -joined list of failed assertion messages; otherwise an empty string. |
uip tm report export
Export a report file. Pass --execution-id for one execution's report in Excel, PDF, or JUnit format, or --test-case-log-ids for a PDF of chosen test case results. One test case result produces a .pdf; two or more produce one .zip with a PDF per result. Exactly one of --execution-id or --test-case-log-ids is required.
Test Manager builds the file as a background job. Without --wait, the command returns the job, and its Instructions name the two commands that finish it: export-jobs get (with --object-type testExecution for an execution report, or --object-type testCaseLog for test case results) until Status reads Completed, then attachment download --attachment-id for the file. With --wait, the command polls the job itself and writes the file to --output-file.
A PDF of test case results needs a Test Cloud license for the account and the execution-read permission on the project. JUnit export can be turned off on a tenant; result download builds JUnit XML on the CLI instead.
Arguments
None.
Options
-
--project-key <key>— owning project key. -
--project-id <id>— owning project ID. Use instead of--project-key.Pass
--project-idor--project-key. When you pass both,--project-idis used. -
--execution-id <uuid>— execution whose report to export. -
--format <format>— report file format, with--execution-idonly:excel,pdf, orjunit. Defaults toexcel. Refused with--test-case-log-ids, which always export PDF. -
--test-case-log-ids <uuid...>— space-separated test case log UUIDs whose results to export as PDFs. -
--time-zone <iana-name>— IANA time zone for the timestamps written into the file, for exampleEurope/Bucharest. Defaults toUTC. An unknown name is refused before the export starts. -
--wait— wait until the export finishes and write the file to--output-file. -
--output-file <path>— where to write the report file. Required with--wait. The parent directory must already exist. -
--overwrite— replace--output-fileif it already exists. Without it, an existing file is refused before the export starts. -
--timeout <seconds>— maximum seconds to wait;0means no timeout. Defaults to600. Requires--wait. -
--poll-interval <seconds>— seconds between status checks. Defaults to5. Requires--wait.
--output-file, --overwrite, --timeout, and --poll-interval have no effect without --wait; the command logs a warning and returns the job. With --wait, a --timeout that elapses exits 2 and writes nothing; the export carries on in the background.
Examples
# start a PDF report of one execution and get the job back
uip tm report export \
--project-key DEMO \
--execution-id a1b2c3d4-0000-0000-0000-000000000001 \
--format pdf
# export one execution's results as JUnit XML, wait, and write the file
uip tm report export \
--project-key DEMO \
--execution-id a1b2c3d4-0000-0000-0000-000000000001 \
--format junit \
--wait \
--output-file ./results.xml
# PDFs of two test case results, written as one .zip
uip tm report export \
--project-key DEMO \
--test-case-log-ids c3d4e5f6-0000-0000-0000-000000000011 c3d4e5f6-0000-0000-0000-000000000012 \
--wait \
--output-file ./results.zip
# start a PDF report of one execution and get the job back
uip tm report export \
--project-key DEMO \
--execution-id a1b2c3d4-0000-0000-0000-000000000001 \
--format pdf
# export one execution's results as JUnit XML, wait, and write the file
uip tm report export \
--project-key DEMO \
--execution-id a1b2c3d4-0000-0000-0000-000000000001 \
--format junit \
--wait \
--output-file ./results.xml
# PDFs of two test case results, written as one .zip
uip tm report export \
--project-key DEMO \
--test-case-log-ids c3d4e5f6-0000-0000-0000-000000000011 c3d4e5f6-0000-0000-0000-000000000012 \
--wait \
--output-file ./results.zip
Data shape (without --wait)
{
"Code": "ReportExport",
"Data": {
"Id": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "Initiated",
"TaskType": "TestExecutionPdfExport",
"AttachmentId": null,
"Created": "2026-10-15T10:00:00.000Z",
"CreatedBy": "c3d4e5f6-0000-0000-0000-000000000003",
"Updated": "2026-10-15T10:00:00.000Z",
"UpdatedBy": "c3d4e5f6-0000-0000-0000-000000000003",
"Payload": null
}
}
{
"Code": "ReportExport",
"Data": {
"Id": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "Initiated",
"TaskType": "TestExecutionPdfExport",
"AttachmentId": null,
"Created": "2026-10-15T10:00:00.000Z",
"CreatedBy": "c3d4e5f6-0000-0000-0000-000000000003",
"Updated": "2026-10-15T10:00:00.000Z",
"UpdatedBy": "c3d4e5f6-0000-0000-0000-000000000003",
"Payload": null
}
}
Id is the export job ID. AttachmentId stays null until the job completes; then it is the ID of the produced file.
Data shape (with --wait)
{
"Code": "ReportExport",
"Data": {
"Id": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "Completed",
"AttachmentId": "d4e5f6a7-0000-0000-0000-000000000002",
"OutputFile": "./results.xml",
"FileType": "xml",
"Bytes": 2311
}
}
{
"Code": "ReportExport",
"Data": {
"Id": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "Completed",
"AttachmentId": "d4e5f6a7-0000-0000-0000-000000000002",
"OutputFile": "./results.xml",
"FileType": "xml",
"Bytes": 2311
}
}
FileType is what was written: xlsx, pdf, xml, or zip. When it does not match the extension of --output-file, the command logs a warning.
Related
- testsets run — produces the
ExecutionIdconsumed here. - wait — block until the execution is in a terminal state before asking for a summary.
- result — the same data as a JUnit XML file, built on the CLI.
- export-jobs — check the export job that
report exportstarts. - executions export — a spreadsheet of many executions rather than one execution's report.
- executions testcaselogs list — full enumeration of logs (not only failures), and the source of
--test-case-log-ids. - testcaselog list-assertions — examine a single failed log.
See also
- Test Manager overview
- Scripting patterns
- Output formats — how
--output-filterand--queryrelate.