Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
220 changes: 121 additions & 99 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ Commands:
statuses Manage test statuses in TestRail
casefields List case fields in TestRail
resultfields List result fields in TestRail
priorities List test case priorities in TestRail
casetypes List test case types in TestRail
users Query users in TestRail
update Update TRCLI to the latest version from PyPI.
```

Expand Down Expand Up @@ -2394,157 +2397,176 @@ Case Status ID: 2
Case status listing completed successfully.
```

### Statuses Command

The TestRail CLI provides the `statuses` command for retrieving status information from TestRail. This includes both test result statuses (Passed, Failed, Blocked, etc.) and case statuses (Approved, Draft, etc.). These statuses are crucial for mapping test results correctly and managing test case workflows.

#### Statuses Command Overview
### Priorities Command

The `statuses` command supports two subcommands:

| Subcommand | Purpose | API Endpoint |
|------------|---------|--------------|
| `all` | List all test result statuses | Retrieve available test result statuses (Passed, Failed, Blocked, etc.) |
| `case` | List all case statuses (Enterprise 7.3+) | Retrieve test case statuses (Approved, Draft, etc.) for case workflows |
The TestRail CLI provides the `priorities` command for retrieving all available test case priorities from TestRail. This command helps you understand the priority levels configured in your TestRail instance, including their IDs, names, short names, display order, and which priority is set as the default.

#### Reference

```shell
$ trcli statuses --help
$ trcli priorities --help

Usage: trcli statuses [OPTIONS] COMMAND [ARGS]...
Manage test statuses in TestRail
Usage: trcli priorities [OPTIONS] COMMAND [ARGS]...
Manage test case priorities in TestRail

Options:
--help Show this message and exit.

Commands:
all List all test result statuses from TestRail
case List all case statuses from TestRail (Enterprise 7.3+)
list List all test case priorities from TestRail
```

##### Listing Test Result Statuses
#### Listing Priorities

List all test result statuses available for a project:
```shell
# List all priorities
$ trcli priorities list -h https://yourinstance.testrail.io -u user@example.com -p password

# Show all fields including priority order
$ trcli priorities list -c config.yml --show-all-fields

# JSON output
$ trcli priorities list -c config.yml --json-output
```

#### Example Output

```shell
# List all test result statuses (using config file)
$ trcli -c config.yml statuses all
$ trcli priorities list -c config.yml

# List all statuses with all parameters
$ trcli statuses all \
--host https://yourinstance.testrail.io \
--username <your_username> \
--password <your_password> \
--project "Your Project"
Priorities List Execution Parameters
> TestRail instance: https://yourinstance.testrail.io (user: your@email.com)
Retrieving priorities...
Found 4 priority level(s).

# Show all fields including color values
$ trcli -c config.yml statuses all --show-all-fields
ID: 1 | Name: 1 - Don't Test | Short: 1 - Don't
ID: 2 | Name: 2 - Low | Short: 2 - Low
ID: 3 | Name: 3 - Medium | Short: 3 - Med
ID: 4 | Name: 4 - Must Test | Short: 4 - Must [DEFAULT]

# JSON output for integration with other tools
$ trcli -c config.yml statuses all --json-output | jq '.[].name'
Priority listing completed successfully.
```

**Example Output:**
**Note:** The `[DEFAULT]` marker indicates which priority is set as the default for new test cases in TestRail. Priorities are global settings and apply across all projects in your TestRail instance.

### Case Types Command

The TestRail CLI provides the `casetypes` command for retrieving all available test case types from TestRail. This command helps you understand the different case type classifications configured in your TestRail instance, such as Automated, Functionality, Performance, and others, including which type is set as the default.

#### Reference

```shell
$ trcli -c config.yml statuses all
$ trcli casetypes --help

Statuses List (Test Result Statuses) Execution Parameters
> TestRail instance: https://yourinstance.testrail.io (user: test@example.com)
> Project: Your Project
Usage: trcli casetypes [OPTIONS] COMMAND [ARGS]...
Manage test case types in TestRail

Retrieving test result statuses for project ID 1...
Found 5 test result status(es):
Options:
--help Show this message and exit.

Status ID: 1
Name: passed
Label: Passed
System Status: Yes
Is Untested: No
Is Final: Yes
Commands:
list List all test case types from TestRail
```

Status ID: 2
Name: blocked
Label: Blocked
System Status: Yes
Is Untested: No
Is Final: No
#### Listing Case Types

Status ID: 3
Name: untested
Label: Untested
System Status: Yes
Is Untested: Yes
Is Final: No
```shell
# List all case types
$ trcli -h https://yourinstance.testrail.io -u user@example.com -p password casetypes list

Status ID: 4
Name: retest
Label: Retest
System Status: Yes
Is Untested: No
Is Final: No
# With config file
$ trcli casetypes list -c config.yml

Status ID: 5
Name: failed
Label: Failed
System Status: Yes
Is Untested: No
Is Final: Yes
# JSON output
$ trcli casetypes list -c config.yml --json-output
```

#### Example Output

Status listing completed successfully.
```shell
$ trcli casetypes list -c config.yml

Case Types List Execution Parameters
> TestRail instance: https://yourinstance.testrail.io (user: your@email.com)
Retrieving case types...
Found 4 case type(s).

ID: 1 | Name: Automated
ID: 2 | Name: Functionality
ID: 3 | Name: Performance
ID: 6 | Name: Other [DEFAULT]

Case type listing completed successfully.
```

##### Listing Case Statuses
**Note:** The `[DEFAULT]` marker indicates which case type is set as the default for new test cases in TestRail. Case types are global settings and apply across all projects in your TestRail instance.

List all case statuses (requires TestRail Enterprise 7.3+):
### Users Command

The TestRail CLI provides the `users` command for retrieving user information from TestRail. This command supports getting individual users by ID or email, retrieving the current authenticated user, and listing all users or users with access to a specific project.

#### Reference

```shell
# List all case statuses (using config file)
$ trcli -c config.yml statuses case
$ trcli users --help

# List case statuses with all parameters
$ trcli statuses case \
--host https://yourinstance.testrail.io \
--username <your_username> \
--password <your_password> \
--project "Your Project"
Usage: trcli users [OPTIONS] COMMAND [ARGS]...
Manage users in TestRail

# Show all fields including abbreviations
$ trcli -c config.yml statuses case --show-all-fields
Options:
--help Show this message and exit.

# JSON output for integration
$ trcli -c config.yml statuses case --json-output | jq '.[].name'
Commands:
get Get a specific user from TestRail
list List all users from TestRail
```

**Example Output:**
#### Getting a Specific User

The `get` subcommand retrieves information about a single user using one of three mutually exclusive options:

```shell
$ trcli -c config.yml statuses case
# Get the current authenticated user
$ trcli -c config.yml users get --current

Statuses List (Case Statuses) Execution Parameters
> TestRail instance: https://yourinstance.testrail.io (user: test@example.com)
> Project: Your Project
# Get user by ID
$ trcli -c config.yml users get --user-id 5

Retrieving case statuses...
Note: This command requires TestRail Enterprise 7.3 or later.
Found 2 case status(es):
# Get user by email
$ trcli -c config.yml users get --email john.doe@example.com

Case Status ID: 1
Name: Approved
Is Default: No
Is Approved: Yes
# Show all fields including admin status and enterprise fields
$ trcli -c config.yml users get --user-id 1 --show-all-fields

Case Status ID: 2
Name: Draft
Is Default: Yes
Is Approved: No
# JSON output
$ trcli -c config.yml users get --current --json-output
```

#### Listing Users

Case status listing completed successfully.
The `list` subcommand retrieves multiple users. Without `--project-id`, it lists all users (requires administrator privileges). With `--project-id`, it lists only users with access to that specific project.

```shell
# List all users (admin only)
$ trcli -c config.yml users list

# List users for a specific project
$ trcli -c config.yml users list --project-id 5

# Show all fields for each user
$ trcli -c config.yml users list --project-id 3 --show-all-fields

# JSON output
$ trcli -c config.yml users list --json-output
```

**Note:**
- The `get` subcommand requires one of `--current`, `--user-id`, or `--email` (mutually exclusive)
- Listing all users without `--project-id` requires administrator privileges (TestRail 6.6+)
- When using `--project-id`, only users with explicit project access are returned (inactive users and users without project access are excluded)
- Enterprise-specific fields (SSO, assigned projects) are only available in TestRail Enterprise
- The `--show-all-fields` option displays additional information including admin status, groups, MFA requirements, and enterprise fields

### Case Fields Command

The TestRail CLI provides the `casefields` command for retrieving all available test case custom fields from TestRail. This command helps you understand what custom fields are available for test cases, their types, configurations, and which projects they apply to.
Expand Down
Loading
Loading