Skip to main content

uip tm testcases

uip tm testcases manages test cases within a Test Manager project: create, list, update, delete, link or unlink an Orchestrator automation, inspect historical results, and add or remove test cases from a test set. This page also documents uip tm testcaselogs list-assertions, which reads the assertion artifacts attached to a single test case log produced by a run.

A test case is the unit of authorship. It becomes runnable once it is linked to a package entry point with testcases link-automation, and it runs as part of a test set (see testsets).

Synopsis

uip tm testcases create --project-key <key> --name <name> [--description <text>] [--version <version>]
uip tm testcases list --project-key <key> [--filter <text>]
uip tm testcases list-result-history --project-key <key> --test-case-id <uuid> [filters…]
uip tm testcases update --project-key <key> --test-case-key <key> [--name <name>] [--description <text>]
uip tm testcases delete --project-key <key> --test-case-key <key>
uip tm testcases link-automation --project-key <key> --test-case-key <key> --folder-key <uuid> --package-name <name> --test-name <name>
uip tm testcases unlink-automation --project-key <key> --test-case-key <key>
uip tm testcases list-automations --project-key <key> --folder-key <uuid> [--package-name <name>]
uip tm testcases list-testsets --project-key <key> --test-case-key <key>
uip tm testcases add --test-set-key <key> --test-case-keys <keys>
uip tm testcases remove --test-set-key <key> --test-case-keys <keys>

uip tm testcaselogs list-assertions --project-key <key> --test-case-log-id <uuid>

All verbs honor the global options and the standard exit codes. Every verb accepts -t, --tenant <name> and --log-level <level> (default Information).

uip tm testcases create

Create a new test case inside a project.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project.
  • --name <name> (required) — test case name.
  • --description <text> — free-form description. Defaults to empty.
  • --version <version> — test case version string. Defaults to 1.0.0.

Example:

uip tm testcases create \
--project-key DEMO \
--name "Login smoke" \
--description "Logs in and out"

Data shape:

{
"Code": "TestCaseCreate",
"Data": {
"TestCaseKey": "DEMO:1",
"Id": "a1b2c3d4-0000-0000-0000-000000000001",
"Name": "Login smoke",
"Description": "Logs in and out",
"Version": "1.0.0"
}
}

TestCaseKey (the public PROJECT:N identifier) is what you pass to other verbs. The internal Id is only needed for list-result-history.

uip tm testcases list

List all test cases in a project. The CLI pages through results automatically; no paging options are exposed on this verb.

Arguments: none.

Options:

  • --project-key <key> (required) — project to list.
  • --filter <text> — filter by name or key (server-side search).

Example:

uip tm testcases list --project-key DEMO --filter login

Data shape:

{
"Code": "TestCasesList",
"Data": [
{
"TestCaseKey": "DEMO:1",
"Name": "Login smoke",
"Version": "1.0.0",
"Description": "Logs in and out"
}
]
}

uip tm testcases list-result-history

List the historical test case logs for a single test case. Takes the internal --test-case-id (UUID), not the PROJECT:N key — look up the UUID via testcases list or from a previous TestCaseCreate output.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project.
  • --test-case-id <uuid> (required) — internal test case UUID.
  • --filter <text> — search test case logs by name.
  • --only-failed — shortcut for "show only failed logs" (default false).
  • --results <results...> — space-separated results to include. Accepted values come from the SDK Result enum.
  • --statuses <statuses...> — space-separated execution statuses. Accepted values come from the SDK TestCaseLogExecutionStatus enum.
  • --duration-period <period> — filter by duration bucket. Accepted values come from the SDK DurationPeriod enum.
  • --top <number> — page size. Defaults to 50.
  • --skip <number> — results to skip. Defaults to 0.
note

The exact accepted values for --results, --statuses, and --duration-period are generated at runtime from the Test Manager SDK enums shipped with the installed tool version. Run uip tm testcases list-result-history --help to see the current set.

Example:

uip tm testcases list-result-history \
--project-key DEMO \
--test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
--only-failed

Data shape:

{
"Code": "TestCaseResultHistory",
"Data": [
{
"Id": "b2c3d4e5-0000-0000-0000-000000000001",
"Result": "Failed",
"Status": "Finished",
"ExecutionEnd": "2025-04-15T12:00:00Z"
}
]
}

uip tm testcases update

Rename a test case or change its description. At least one of --name or --description is required; otherwise the command fails with a validation error.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case key (e.g. DEMO:1).
  • --name <name> — new name.
  • --description <text> — new description.

Example:

uip tm testcases update \
--project-key DEMO \
--test-case-key DEMO:1 \
--name "Login smoke (2026)"

Data shape:

{
"Code": "TestCaseUpdate",
"Data": {
"TestCaseKey": "DEMO:1",
"Name": "Login smoke (2026)",
"Description": "Logs in and out",
"Result": "Updated"
}
}

uip tm testcases delete

Delete a test case by its key.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case key (e.g. DEMO:1).

Example:

uip tm testcases delete --project-key DEMO --test-case-key DEMO:1

Data shape:

{
"Code": "TestCaseDelete",
"Data": {
"TestCaseKey": "DEMO:1",
"Id": "a1b2c3d4-0000-0000-0000-000000000001",
"Result": "Deleted"
}
}

Bind an Orchestrator package entry point to a test case. This is what makes the test case executable inside a test set.

Internally, the command resolves the folder display name from --folder-key, looks up the matching package entry point by name, then stores the binding on the test case. All four of --folder-key, --package-name, and --test-name must resolve to a concrete entry point or the command fails.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case to bind.
  • --folder-key <uuid> (required) — Orchestrator folder UUID (from uip or folders list).
  • --package-name <name> (required) — Orchestrator package identifier (e.g. InvoiceTests).
  • --test-name <name> (required) — the test case name inside the package (the entry point name).

Example:

uip tm testcases link-automation \
--project-key DEMO \
--test-case-key DEMO:1 \
--folder-key f0f0f0f0-0000-0000-0000-000000000001 \
--package-name InvoiceTests \
--test-name SmokeTest

Data shape:

{
"Code": "TestCaseLinkAutomation",
"Data": {
"TestCaseKey": "DEMO:1",
"PackageName": "InvoiceTests",
"PackageSource": "Shared",
"TestName": "SmokeTest",
"Result": "Linked"
}
}

PackageSource is the display name of the folder resolved from --folder-key.

Remove the package-entry-point binding from a test case. After unlinking, the test case is no longer executable until it is linked again.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case to unlink.

Example:

uip tm testcases unlink-automation --project-key DEMO --test-case-key DEMO:1

Data shape:

{
"Code": "TestCaseUnlinkAutomation",
"Data": {
"TestCaseKey": "DEMO:1",
"Result": "Unlinked"
}
}

uip tm testcases list-automations

List the test entry points available in an Orchestrator folder — use this to discover the --package-name / --test-name values to pass to link-automation.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project (used to scope the lookup).
  • --folder-key <uuid> (required) — Orchestrator folder UUID.
  • --package-name <name> — filter the list to one package (case-insensitive exact match).

Example:

uip tm testcases list-automations \
--project-key DEMO \
--folder-key f0f0f0f0-0000-0000-0000-000000000001

Data shape:

{
"Code": "TestAutomationsList",
"Data": [
{
"PackageName": "InvoiceTests",
"TestName": "SmokeTest",
"PackageVersion": "1.0.2"
}
]
}

uip tm testcases list-testsets

List every test set that contains a given test case.

Arguments: none.

Options:

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case key (e.g. DEMO:1).

Example:

uip tm testcases list-testsets --project-key DEMO --test-case-key DEMO:1

Data shape:

{
"Code": "TestCaseTestSetsList",
"Data": [
{
"TestSetKey": "DEMO:10",
"Name": "Smoke Suite",
"FolderKey": "f0f0f0f0-0000-0000-0000-000000000001"
}
]
}

uip tm testcases add

Add one or more test cases to a test set. The CLI resolves every key to its internal UUID and calls the assignment endpoint in one request. If any key is unknown, the whole call fails before any change is made.

Arguments: none.

Options:

  • --test-set-key <key> (required) — test set to modify.
  • --test-case-keys <keys> (required) — comma-separated test case keys (e.g. DEMO:1,DEMO:2). Whitespace around commas is ignored.

Example:

uip tm testcases add \
--test-set-key DEMO:10 \
--test-case-keys DEMO:1,DEMO:2

Data shape:

{
"Code": "TestCaseAdd",
"Data": {
"TestSetKey": "DEMO:10",
"Added": "DEMO:1, DEMO:2",
"Result": "Added"
}
}

uip tm testcases remove

Remove one or more test cases from a test set. Same semantics as testcases add but calls the unassignment endpoint.

Arguments: none.

Options:

  • --test-set-key <key> (required) — test set to modify.
  • --test-case-keys <keys> (required) — comma-separated test case keys to remove.

Example:

uip tm testcases remove \
--test-set-key DEMO:10 \
--test-case-keys DEMO:1,DEMO:2

Data shape:

{
"Code": "TestCaseRemove",
"Data": {
"TestSetKey": "DEMO:10",
"Removed": "DEMO:1, DEMO:2",
"Result": "Removed"
}
}

uip tm testcaselogs list-assertions

List the assertions recorded for a single test case log. Every run of a test case produces exactly one test case log; its assertions are the individual checks the automation recorded (Expect, VerifyExpression, etc.). Use this when you want to surface why a test case log is marked Failed.

This verb is registered under testcaselogs, not testcases, but it is documented here because it reads assertion artifacts for a test case's log.

Arguments: none.

Options:

  • --test-case-log-id <uuid> (required) — test case log UUID. Get it from uip tm executions testcaselogs list or uip tm testcases list-result-history.
  • --project-key <key> (required) — owning project.

Example:

uip tm testcaselogs list-assertions \
--test-case-log-id a1b2c3d4-0000-0000-0000-000000000001 \
--project-key DEMO

Data shape:

{
"Code": "TestCaseLogAssertions",
"Data": [
{ "Message": "Title contains 'Welcome'", "Succeeded": true },
{ "Message": "Button 'Login' visible", "Succeeded": false }
]
}
  • project — scope that owns every test case.
  • testsets — group test cases into a runnable suite.
  • executions — execution-level views of test case logs (execution testcaselogs list).
  • report — summary of a run, with failed cases and assertion text.

See also