From uipath
Manages UiPath Test Manager resources — projects, test cases, test sets, and executions — via the uip CLI. Generates persona-tailored test reports for go/no-go decisions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/uipath:uipath-testThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage UiPath Test Manager resources (projects, test cases, test sets, executions) and generate persona-tailored shareable test reports.
Manage UiPath Test Manager resources (projects, test cases, test sets, executions) and generate persona-tailored shareable test reports.
UiPath Test Manager is a web application that manages the testing lifecycle of projects, enabling requirements traceability, test planning, and reporting. Its key business objects are:
CLI tool for UiPath Test Manager (uip tm). Use uip tm --help and uip tm <command> <subcommand> --help to discover commands and options. Always pass --output json on every uip command.
Common uip tm commands organized by resource type.
| Command | Purpose |
|---|---|
uip tm project list --filter <NAME_OR_KEY> | Find a project by name or key. |
uip tm project create --name <PROJECT_NAME> --project-key <PROJECT_KEY> | Create a new Test Manager project. |
uip tm project update --project-key <PROJECT_KEY> --name <PROJECT_NAME> | Update project name or description. |
uip tm project delete --project-key <PROJECT_KEY> | Delete a Test Manager project. |
uip tm project set-default-folder --project-key <PROJECT_KEY> --folder-key <FOLDER_KEY> | Set the default Orchestrator folder for a project. |
uip tm project clear-default-folder --project-key <PROJECT_KEY> | Clear the default Orchestrator folder from a project. |
uip tm project owners list --project-key <PROJECT_KEY> [<PROJECT_KEY> ...] | List the owners of one or more Test Manager projects. |
Get folder keys with
uip or folders list -n <name> --all --output json— returns all folders visible to the current user.
| Command | Purpose |
|---|---|
uip tm requirements list --project-key <PROJECT_KEY> | List requirements in a Test Manager project. |
uip tm requirements list-by-test-execution --project-key <PROJECT_KEY> --execution-id <uuid> | List requirements covered by a test execution. |
uip tm requirements get --project-key <PROJECT_KEY> (--requirement-id <uuid> | --requirement-key <key>) | Get a requirement by UUID or key (mutually exclusive). |
uip tm requirements create --project-key <PROJECT_KEY> --name <name> | Create a new requirement. |
uip tm requirements update --project-key <PROJECT_KEY> --requirement-id <uuid> | Update a requirement name or description (at least one of --name or --description required). |
uip tm requirements delete --project-key <PROJECT_KEY> --requirement-ids <uuid...> | Delete one or more requirements (variadic). |
uip tm requirements export --project-key <PROJECT_KEY> --output-file <path> | Export requirements to an .xlsx file. |
uip tm requirements list-testcase-ids --project-key <PROJECT_KEY> --requirement-id <uuid> | List the test case UUIDs assigned to a requirement. |
uip tm requirements testcases --project-key <PROJECT_KEY> --requirement-id <uuid> (--add-testcase-ids <uuid...> | --remove-testcase-ids <uuid...>) | Attach or detach test cases on a requirement (mutually exclusive). |
| Command | Purpose |
|---|---|
uip tm testcases create --project-key <PROJECT_KEY> --name <TEST_CASE_NAME> | Create a new test case in a Test Manager project. |
uip tm testcases list --project-key <PROJECT_KEY> | List all test cases in a Test Manager project. Optional --filter <text> to search by name/key. |
uip tm testcases update --project-key <PROJECT_KEY> --test-case-key <TEST_CASE_KEY> --name <TEST_CASE_NAME> | Update a test case name or description (at least one of --name or --description required). |
uip tm testcases delete --project-key <PROJECT_KEY> --test-case-key <TEST_CASE_KEY> | Delete a test case by its key. |
uip tm testcases link-automation --project-key <PROJECT_KEY> --test-case-key <TEST_CASE_KEY> --folder-key <FOLDER_KEY> --package-name <PACKAGE_NAME> --test-name <TEST_NAME> | Link an Orchestrator package automation to a test case. |
uip tm testcases unlink-automation --project-key <PROJECT_KEY> --test-case-key <TEST_CASE_KEY> | Unlink the automation from a test case. |
uip tm testcases list-automations --project-key <PROJECT_KEY> --folder-key <FOLDER_KEY> | List test entry points available in an Orchestrator folder (optional: --package-name <PACKAGE_NAME> to filter). |
uip tm testcases list-testsets --project-key <PROJECT_KEY> --test-case-key <TEST_CASE_KEY> | List test sets that contain a given test case. |
uip tm testcases list-steps --project-key <PROJECT_KEY> --test-case-id <TEST_CASE_ID> | List test steps for a test case. Uses --test-case-id <UUID>, not --test-case-key. |
uip tm testcases list-result-history --project-key <PROJECT_KEY> --test-case-id <TEST_CASE_ID> | List test case log result history for a specific test case. Optional --only-failed, --filter, --limit, --offset. |
uip tm testcases run --project-key <PROJECT_KEY> --test-case-id <TEST_CASE_ID> | Start a new execution for one or more test cases. Uses --test-case-id <UUID> (space-separated for multiple). Optional --async, --name, --folder-key, --robot-user-key, --machine-key. |
uip tm testcases add --test-set-key <TEST_SET_KEY> --test-case-keys <KEY1,KEY2,...> | Add test cases to a test set (comma-separated keys). |
uip tm testcases remove --test-set-key <TEST_SET_KEY> --test-case-keys <KEY1,KEY2,...> | Remove test cases from a test set (comma-separated keys). |
Three flag shapes for test case identifiers — do not interchange:
--test-case-id <UUID>— used byrun,list-steps,list-result-history. Get the UUID fromuip tm testcases list --output json(Idfield).--test-case-key <PROJECT_KEY:NUMBER>— singular, used byupdate,delete,link-automation,unlink-automation,list-testsets. Example:DEMO:1.--test-case-keys <KEY1,KEY2,...>— plural, comma-separated, used bytestcases addandtestcases removefor bulk membership changes on a test set.
| Command | Purpose |
|---|---|
uip tm testsets create --project-key <PROJECT_KEY> --name <TEST_SET_NAME> | Create a new test set in a Test Manager project. |
uip tm testsets list --project-key <PROJECT_KEY> | List test sets in a Test Manager project. Optional --filter <text>, --folder-key, --include-last-execution. |
uip tm testsets update --test-set-key <TEST_SET_KEY> --name <TEST_SET_NAME> | Update a test set name or description. |
uip tm testsets delete --test-set-key <TEST_SET_KEY> | Delete a test set by its key. |
uip tm testsets list-testcases --project-key <PROJECT_KEY> --test-set-key <TEST_SET_KEY> | List test cases assigned to a test set. |
uip tm testsets run --test-set-key <TEST_SET_KEY> | Run a test set and return the execution ID. Optional --execution-type <automated|manual|mixed|none> (default automated), --input-path <FILE> for parameter overrides. |
Keys use the format
PROJECT_KEY:NUMBER(e.g.,INV:42). To add or remove test cases in a test set, useuip tm testcases add/uip tm testcases remove— those verbs live under thetestcasesgroup, not undertestsets.
| Command | Purpose |
|---|---|
uip tm executions list --project-key <PROJECT_KEY> | List top n executions for a project. Optional --test-set-id <UUID> to scope to a test set, --filter <text>, --limit, --offset. Use this for the common case (one test set or a single project query). |
uip tm executions list-filtered --project-key <PROJECT_KEY> | Rich-filter variant: --test-set-id, --updated-by, --search, --labels, --test-execution-ids, --sort-by, --limit, --offset. Use only when you need label filtering, multi-execution-id lookup, custom ordering, or --updated-by filtering — features list does not expose. |
uip tm executions get-stats --execution-id <EXECUTION_ID> --project-key <PROJECT_KEY> | Get aggregated statistics for a single test execution. |
uip tm executions run --execution-id <EXECUTION_ID> --project-key <PROJECT_KEY> --execution-type <TYPE> | Re-run an existing test execution. Optional --test-case-log-ids <UUID...> to re-run only specific test case logs (space-separated), --async. |
uip tm executions retry --execution-id <EXECUTION_ID> | Retry only the failed test cases of a finished execution. Optional --project-key, --test-set-key, --execution-type. |
uip tm executions testcaselogs list --execution-id <EXECUTION_ID> --project-key <PROJECT_KEY> | List test case logs of an execution. Optional --only-failed, --filter, --limit, --offset. Note the nested subcommand path — this is not a top-level executions verb. |
runlives under three groups, all distinct:
uip tm testcases run— start a new execution for one or more test cases (--test-case-idUUIDs, space-separated).uip tm testsets run— start a new execution for an entire test set (--test-set-key).uip tm executions run— re-run an existing execution by--execution-id, optionally narrowed to specific--test-case-log-ids.
| Command | Purpose |
|---|---|
uip tm testcaselog start --project-key <PROJECT_KEY> --execution-id <EXECUTION_ID> --test-case-id <TEST_CASE_ID> | Start a test case execution within a running test execution. Optional --run-id <NUMBER>. |
uip tm testcaselog finish --project-key <PROJECT_KEY> --execution-id <EXECUTION_ID> --test-case-id <TEST_CASE_ID> --has-error <true|false> --executed-by <USER_ID> | Finish a started test case execution. Optional --detail-link <URL>, --run-id, --is-post-condition-met. |
uip tm testcaselog list-assertions --project-key <PROJECT_KEY> --test-case-log-id <TEST_CASE_LOG_ID> | List assertions of a test case log. |
| Command | Purpose |
|---|---|
uip tm teststeplog list --project-key <PROJECT_KEY> --test-case-log-id <TEST_CASE_LOG_ID> | List test step logs for a test case log. |
| Command | Purpose |
|---|---|
uip tm report get --execution-id <EXECUTION_ID> | Get a summary report for a completed test execution. Optional --project-key, --test-set-key, --query. |
| Command | Purpose |
|---|---|
uip tm attachment download --execution-id <EXECUTION_ID> | Download attachments for test cases in an execution. Optional --project-key, --test-set-key, --test-case-name, --only-failed, --result-path <DIR>. |
| Command | Purpose |
|---|---|
uip tm result download --execution-id <EXECUTION_ID> | Download test execution results as JUnit XML. Optional --project-key, --test-set-key, --result-path <DIR>. |
| Command | Purpose |
|---|---|
uip tm wait --execution-id <EXECUTION_ID> | Wait for a test execution to reach a terminal state. Optional --project-key, --test-set-key, --timeout <SECONDS>. |
| Command | Purpose |
|---|---|
uip tm user get | Get profile data for the currently authenticated user. |
Custom fields are project-scoped field definitions you attach to Requirement, TestCase, or TestSet objects. The top-level customfield commands manage these definitions. The nested label and value subgroups operate on the per-object rows that fill in those fields. The --object-type flag is case-sensitive and accepts only Requirement, TestCase, or TestSet. The --data-type flag accepts only Text or Label (also PascalCase).
| Command | Purpose |
|---|---|
uip tm customfield list --project-key <PROJECT_KEY> | List custom field definitions. Optional --object-types <type...>, --data-types <type...> (filter; both variadic, PascalCase), --name <NAME> (exact match), --filter <text> (substring), --sort-by <expr>, --limit <N>, --offset <N>. |
uip tm customfield get --project-key <PROJECT_KEY> --field-id <UUID> | Get a custom field definition by UUID, OR identify by --name <NAME> --object-type <TYPE>. |
uip tm customfield create --project-key <PROJECT_KEY> --name <NAME> --data-type <Text|Label> (--object-type <Requirement|TestCase|TestSet> | --scope-list <type...>) | Create a new custom field definition. Pass --object-type for a single-scope field, OR --scope-list <Requirement TestCase TestSet> (variadic, mutually exclusive) for multi-scope. Optional --description <text>, --value-hints <text>, --default-value <text>. |
uip tm customfield update --project-key <PROJECT_KEY> --field-id <UUID> | Update a custom field definition. Identify by --field-id OR by --name + --object-type. Optional --rename-to <name>, --description, --default-value, --value-hints. Unspecified fields keep current values. |
uip tm customfield delete --project-key <PROJECT_KEY> --field-ids <UUID...> | Delete one or more custom field definitions by UUID (variadic), OR singleton by --name + --object-type. |
All customfield label verbs require --object-type <Requirement\|TestCase\|TestSet>.
| Command | Purpose |
|---|---|
uip tm customfield label list --project-key <PROJECT_KEY> --object-type <TYPE> | List label rows. Optional --object-id <UUID> to scope to a single object, --filter <text>, --sort-by, --limit, --offset. |
uip tm customfield label get --project-key <PROJECT_KEY> --object-type <TYPE> --label-id <UUID> | Get a single label row by UUID. |
uip tm customfield label create --project-key <PROJECT_KEY> --object-type <TYPE> --object-id <UUID> --values '{"Field":["v1","v2"]}' | Upsert a label row on one object. --values is a JSON object mapping field names to string arrays. |
uip tm customfield label add --project-key <PROJECT_KEY> --object-type <TYPE> --custom-field-name <NAME> --object-ids <UUID...> --values <value...> | Append values to a label field across multiple objects. Optional --replace-existing-values for authoritative-set semantics. |
uip tm customfield label remove --project-key <PROJECT_KEY> --object-type <TYPE> --custom-field-name <NAME> --object-ids <UUID...> (--values <value...> | --remove-all-values) | Remove values from a label field across multiple objects. |
All customfield value verbs require --object-type <Requirement\|TestCase\|TestSet>. create additionally requires --data-type <Text\|Label> (must match the field's definition).
| Command | Purpose |
|---|---|
uip tm customfield value list --project-key <PROJECT_KEY> --object-type <TYPE> | List value rows. Results are empty unless --object-id <UUID> is provided. Optional --filter <text>, --sort-by, --limit, --offset. |
uip tm customfield value get --project-key <PROJECT_KEY> --object-type <TYPE> --value-id <UUID> | Get a value row by UUID, OR by --name + --object-id. |
uip tm customfield value create --project-key <PROJECT_KEY> --object-type <TYPE> --name <FIELD_NAME> --object-id <UUID> --data-type <Text|Label> | Create a value row. Optional --value <text> for the initial content. The --data-type must match the existing field definition. |
uip tm customfield value update --project-key <PROJECT_KEY> --object-type <TYPE> --value-id <UUID> --value <text> | Update a value row by UUID, OR by --name + --object-id. Use --clear to set the value to empty. |
uip tm customfield value delete --project-key <PROJECT_KEY> --object-type <TYPE> --value-id <UUID> | Delete a value row by UUID, OR by --name + --object-id. |
Object labels are tag-style metadata applied to Requirement, TestCase, TestSet, TestExecution, TestCaseLog. Use --object-type for the parent kind and --object-ids for the target objects.
| Command | Purpose |
|---|---|
uip tm objectlabel list --project-key <PROJECT_KEY> --object-type <Requirement|TestCase|TestSet|TestExecution|TestCaseLog> | List distinct label names for one --object-type (paginated). Optional --object-ids <UUID...>, --label-types <UserLabel|SystemLabel|InternalLabel ...>, --filter <text>, --sort-by, --limit, --offset. |
uip tm objectlabel get --project-key <PROJECT_KEY> --label-id <UUID> | Get a single label-assignment row by UUID. |
uip tm objectlabel add --project-key <PROJECT_KEY> --object-type <TYPE> --object-ids <UUID...> --labels <name...> | Attach labels to objects (variadic; one-to-one, one-to-many, many-to-many). Optional --remove-other-labels for authoritative-set semantics. |
uip tm objectlabel remove --project-key <PROJECT_KEY> --object-type <TYPE> --object-ids <UUID...> (--labels <name...> | --remove-all-labels) | Detach labels from objects. --labels and --remove-all-labels are mutually exclusive. |
uip login status --output json before any Test Manager operation. If not authenticated, run uip login to sign in.uip tm command. Run uip tm testcases --help --output json (any flags accepted). Result Success → post-rename CLI; use the command tables above as-is. unknown command / non-zero exit → pre-rename CLI; translate via the Pre-rename fallbacks table before each call. Re-probe on any later unknown command error.--output json to every uip command — no exceptions. Structured JSON output is what you need to reason about results reliably, even when you only plan to summarize them back to the user.uip CLI command. After 3 failures, stop and report the error to the user (see Rule — never fall back to direct REST APIs).delete command.uip or folders list -n <folder-name> --all --output json (run /uipath-platform for folder management details).list command first (e.g., uip tm testcases list-automations, uip or folders list -n <folder-name> --all).list calls server-side when the user names an entity. When the user provides a name, key, label, or tag, check uip tm <resource> list --help (or uip or <resource> list --help) for the narrowing flag the command exposes and pass it on the list call. Never list all results and filter client-side — it wastes tokens and misses paginated entries. Applies to every entity across uip tm and uip or.run command — uip tm testcases run and uip tm testsets run both require a default Orchestrator folder on the project. Run uip tm project set-default-folder --project-key <PROJECT_KEY> --folder-key <FOLDER_KEY> --output json first. Get folder keys with uip or folders list -n <folder-name> --all --output json.uip command failure or ambiguity, STOP and ask the user — do NOT fall back to direct REST API calls. When a uip command errors, returns malformed output, or the right flag/value is unclear (e.g., multiple matching entities, missing identifier, unexpected schema), interrupt and ask the user before proceeding. This overrides any instinct to "try the underlying API instead."If the probe in Rule #2 shows singular subjects, the CLI predates the closed-verb-set renames. Translate before running:
| Post-rename (tables above) | Pre-rename equivalent |
|---|---|
uip tm testcases <verb> | uip tm testcase <verb> |
uip tm testsets <verb> | uip tm testset <verb> |
uip tm executions <verb> | uip tm execution <verb> |
uip tm testcases run | uip tm testcase execute |
uip tm testsets run | uip tm testset execute |
uip tm testcases add --test-set-key … --test-case-keys … | uip tm testset add-testcases --test-set-key … --test-case-keys … |
uip tm testcases remove --test-set-key … --test-case-keys … | uip tm testset remove-testcases … |
uip tm executions testcaselogs list | uip tm execution list-testcaselogs |
uip tm wait, tm testcaselog, tm report, tm result, tm attachment, tm project, tm user, tm requirement are unchanged on both surfaces.
uip login status --output json
If not authenticated, run uip login to sign in.
Set the active tenant (if needed)
uip login tenant set <TENANT_NAME> --output json
For more authentication details, run /uipath-platform.
Ask the user for the project name or key before any Test Manager call. For multi-project scenarios, collect ALL names or keys in one prompt. Resolve each to a PROJECT_KEY:
uip tm project list --filter <NAME_OR_KEY> --output json
Zero matches → stop and ask the user. Multiple matches → list candidates and ask the user to pick. Reuse the confirmed PROJECT_KEY for every downstream command.
# Get project
uip tm project list --filter <PROJECT_NAME_OR_KEY> --output json
# List test sets in a project
uip tm testsets list --project-key <PROJECT_KEY> --filter <TEST_SET_NAME_OR_KEY> --output json
# List test cases assigned to a test set
uip tm testsets list-testcases --project-key <PROJECT_KEY> --test-set-key <TEST_SET_KEY> --output json
# List recent executions for a test set
uip tm executions list --project-key <PROJECT_KEY> --test-set-id <TEST_SET_ID> --limit 100 --output json
# List test case logs for an execution (nested subcommand under `executions`)
uip tm executions testcaselogs list --execution-id <EXECUTION_ID> --project-key <PROJECT_KEY> --output json
# List assertions of a test case log
uip tm testcaselog list-assertions --project-key <PROJECT_KEY> --test-case-log-id <TEST_CASE_LOG_ID> --output json
# List step-level logs of a test case log
uip tm teststeplog list --project-key <PROJECT_KEY> --test-case-log-id <TEST_CASE_LOG_ID> --output json
| Problem | Fix |
|---|---|
401 Unauthorized on REST API | uip login to re-authenticate. |
If a command fails unexpectedly:
- Verify the command syntax:
uip tm <command> --help- Check authentication:
uip login status --output json
| I want to... | Start here |
|---|---|
| Generate a shareable test report (tester or release manager view) | references/test-result-report-guide.md |
| Publish a project and link it to a Test Manager test case | references/publish-and-link-guide.md |
unknown command; on a post-rename CLI, pre-rename commands fail the same way. The skill targets the post-rename surface and falls back per the Pre-rename fallbacks table. Picking the wrong shape without probing burns a retry on every call.uip tm <resource> --help --output json.npx claudepluginhub uipath/skills --plugin uipathEnforces QA test naming conventions, directory structure, status lifecycle transitions, and metadata for organized test management and traceability.
Syncs Playwright tests with TestRail: import cases to generate tests, push results to runs, create runs, check coverage, update cases.
Generates test plans, manual test cases, automated Playwright tests, regression suites, and bug reports using markdown templates for QA automation.