> For the complete documentation index, see [llms.txt](https://docs.sealights.io/knowledgebase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sealights.io/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/command-line-interface/configure-test-repositories.md).

# Configure Test Repositories

A Test Repository is an external test management tool (such as Tosca, qTest, or Excel) that the ABAP Agent queries to find test cases that cover your ABAP changes. Each test repository is linked to a Pipeline and carries adapter-specific connection settings.

## Create or Update a Test Repository

### `slabapcli testrepo set`

Creates or updates a test repository adapter entry in `config.toml`. After saving the configuration, the command may run an automatic connection test. You can also verify connectivity later with `testrepo test`.

{% hint style="info" %}
**Prerequisite:** Create a Pipeline (`slabapcli pipeline set`) before running `testrepo set`. The `--pipeline` value must match an existing `[[pipeline]].name` in `config.toml`.
{% endhint %}

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Syntax" overflow="wrap" %}

```batch
slabapcli.exe testrepo set --name <name> --type <type> --pipeline <pipeline> [--setting key=value ...] [--test-stage <stage>]
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Syntax" overflow="wrap" %}

```powershell
.\slabapcli.exe testrepo set --name <name> --type <type> --pipeline <pipeline> [--setting key=value ...] [--test-stage <stage>]
```

{% endcode %}
{% endtab %}
{% endtabs %}

| Parameter      | Short flag | Required               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| -------------- | ---------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--name`       | `-n`       | Yes                    | A unique name for this test repository entry (stored as `[[testrepo]].name`).                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `--type`       | `-t`       | Yes                    | The adapter type. Supported values: `ado`, `tosca`, `toscacloud`, `excel`, `xray`, `qtest`, `certify`, `ssm`, `alm`.                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `--pipeline`   | `-p`       | Yes                    | The pipeline name this test repository belongs to (must match a `[[pipeline]].name` value in `config.toml`).                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `--setting`    | —          | See per-adapter tables | A non-secret adapter setting in `key=value` form. Repeat this flag for each key. **Secrets are not accepted via `--setting`** — they are entered interactively (see below).                                                                                                                                                                                                                                                                                                                                                            |
| `--test-stage` | —          | No                     | Optional SeaLights test stage for this test repository (stored as top-level `[[testrepo]].teststage`). This is a dedicated option — do **not** pass it as `--setting`. When omitted on `testrepo set`, any previously stored `teststage` is **cleared**. When never set or cleared, the effective default is `"{type} Tests"` (for example `qtest Tests` or `ado Tests`). See [Configuration settings](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/configuration-settings.md) for the TOML key. |

### How `testrepo set` replaces settings

{% hint style="warning" %}
**Full replacement on every call:** `testrepo set` replaces the **entire** `[testrepo.settings]` block, `searchpaths`, and `teststage` on every invocation. Any optional key you omit is cleared — omitting `--test-stage` clears a previously stored `teststage`. To make a partial change — for example, to update a single setting without re-entering all others — edit `config.toml` directly.

See [Configuration settings](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/configuration-settings.md) for the full `[[testrepo]]` schema.
{% endhint %}

{% hint style="info" %}
**Duplicate test stages:** If another test repository on the same pipeline already uses the same effective test stage, `testrepo set` emits a warning but still saves successfully. The warning asks you to confirm intent — a shared stage can be valid when multiple repositories intentionally contribute regression tests for the same RFC or pipeline context.
{% endhint %}

### How secrets are entered

Secret keys (credentials) are never accepted via `--setting`. After the non-secret settings are validated, the command prompts you interactively for each secret field. Input is hidden and you must confirm each entry. If you skip an optional secret (for example, one half of a two-pair credential), press **Enter** at the prompt.

To change a secret without re-running the full command, use the interactive `set` commands, or edit the value directly in `config.toml` when it is stored as plaintext (`key` and `iv` in `[settings]` are empty). If a scheduled task may already hold the prior credentials, stop and start that **task** as needed.

***

### Per-adapter setting keys

The `--setting` flag accepts only non-secret keys. The table for each adapter type lists all accepted keys, whether they are required, and the expected format.

{% hint style="info" %}
`searchPaths` (optional for all types that accept it) scopes the search to a comma-separated list of repository or filesystem paths. When omitted, the adapter searches the entire test repository. `confidenceThreshold` (optional, integer 0–100) sets the minimum match confidence for a test case to be considered a match. When omitted, the adapter uses its default. **Exception:** `ado` does not accept `confidenceThreshold`.
{% endhint %}

#### qtest

| Setting key           | Required | Format               | Description                                                         |
| --------------------- | -------- | -------------------- | ------------------------------------------------------------------- |
| `url`                 | Yes      | URL string           | The qTest Manager base URL (e.g. `https://mycompany.qtestnet.com`). |
| `project`             | Yes      | String               | The qTest project name or ID.                                       |
| `searchPaths`         | No       | Comma-separated list | Scopes the search to specific qTest modules or paths.               |
| `confidenceThreshold` | No       | Integer 0–100        | Minimum confidence for a match.                                     |

**Secrets (entered interactively):**

| Secret key | Required | Description                      |
| ---------- | -------- | -------------------------------- |
| `username` | Yes      | The qTest user account name.     |
| `password` | Yes      | The qTest user account password. |

#### tosca

| Setting key               | Required | Format                   | Description                                              |
| ------------------------- | -------- | ------------------------ | -------------------------------------------------------- |
| `url`                     | Yes      | URL string               | The Tosca server URL.                                    |
| `project`                 | Yes      | String                   | The Tosca project name.                                  |
| `workstates`              | No       | Comma-separated list     | Test case workflow states to include in the search.      |
| `searchTransaction`       | No       | `true` / `false`         | Whether to search Tosca Transactions.                    |
| `searchTestConfiguration` | No       | `true` / `false`         | Whether to search Tosca Test Configurations.             |
| `searchTile`              | No       | `true` / `false`         | Whether to search Tosca Tiles.                           |
| `searchApiTypeSapModule`  | No       | `true` / `false`         | Whether to search API-type SAP module test cases.        |
| `bufferPatterns`          | No       | Semicolon-separated list | Regex patterns applied to buffer test case names.        |
| `parameterPatterns`       | No       | Semicolon-separated list | Regex patterns applied to parameter names.               |
| `searchPaths`             | No       | Comma-separated list     | Scopes the search to specific Tosca paths.               |
| `confidenceThreshold`     | No       | Integer 0–100            | Minimum confidence for a match.                          |
| `skipCollect`             | No       | `true` / `false`         | When `true`, the adapter skips the data collection step. |
| `configurationPatterns`   | No       | Semicolon-separated list | Patterns for filtering Tosca configurations.             |

**Secrets (entered interactively — provide exactly one credential pair):**

| Secret key  | Required                                                 | Description       |
| ----------- | -------------------------------------------------------- | ----------------- |
| `username`  | One of `username`+`password` **or** `apikey`+`apisecret` | Tosca username.   |
| `password`  | One of `username`+`password` **or** `apikey`+`apisecret` | Tosca password.   |
| `apikey`    | One of `username`+`password` **or** `apikey`+`apisecret` | Tosca API key.    |
| `apisecret` | One of `username`+`password` **or** `apikey`+`apisecret` | Tosca API secret. |

#### toscacloud

| Setting key           | Required | Format               | Description                                                   |
| --------------------- | -------- | -------------------- | ------------------------------------------------------------- |
| `url`                 | Yes      | URL string           | The Tosca Cloud base URL.                                     |
| `spaceId`             | Yes      | String               | The Tosca Cloud space ID.                                     |
| `scope`               | Yes      | String               | The Tosca Cloud scope (e.g. project or workspace identifier). |
| `workstates`          | No       | Comma-separated list | Test case workflow states to include in the search.           |
| `searchPaths`         | No       | Comma-separated list | Scopes the search to specific paths.                          |
| `confidenceThreshold` | No       | Integer 0–100        | Minimum confidence for a match.                               |

**Secrets (entered interactively):**

| Secret key     | Required | Description                    |
| -------------- | -------- | ------------------------------ |
| `clientId`     | Yes      | The Tosca Cloud client ID.     |
| `clientSecret` | Yes      | The Tosca Cloud client secret. |

#### excel

| Setting key           | Required | Format                                  | Description                                                                                     |
| --------------------- | -------- | --------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `filePath`            | Yes      | File path (`.xlsx`, `.xlsm`, or `.xls`) | Path to the Excel workbook on the agent host.                                                   |
| `sheetName`           | Yes      | String                                  | The worksheet name that contains the test case data.                                            |
| `testCaseIdColumn`    | Yes      | String                                  | Column address for the test case ID (for example `A`).                                          |
| `testCaseNameColumn`  | Yes      | String                                  | Column address for the test case name (for example `B`).                                        |
| `searchColumns`       | Yes      | Comma-separated list                    | One or more column addresses to search for ABAP object matches. At least one entry is required. |
| `testCasePathColumn`  | No       | String                                  | Column address for the test case path.                                                          |
| `searchPaths`         | No       | Comma-separated list                    | Scopes the search to specific paths.                                                            |
| `confidenceThreshold` | No       | Integer 0–100                           | Minimum confidence for a match.                                                                 |

Excel has no secrets.

#### xray

| Setting key           | Required | Format                                  | Description                                            |
| --------------------- | -------- | --------------------------------------- | ------------------------------------------------------ |
| `filePath`            | Yes      | File path (`.xlsx`, `.xlsm`, or `.xls`) | Path to the Xray export file on the agent host.        |
| `sheetName`           | Yes      | String                                  | The worksheet name that contains the test case data.   |
| `testCaseIdColumn`    | Yes      | String                                  | Column address for the test case ID (for example `A`). |
| `testCaseNameColumn`  | Yes      | String                                  | Column address for the test case name.                 |
| `testStepsColumn`     | Yes      | String                                  | Column address for the JSON test-steps payload.        |
| `testCasePathColumn`  | No       | String                                  | Column address for the test case path.                 |
| `searchPaths`         | No       | Comma-separated list                    | Scopes the search to specific paths.                   |
| `confidenceThreshold` | No       | Integer 0–100                           | Minimum confidence for a match.                        |

Xray has no secrets.

#### ado

| Setting key   | Required | Format               | Description                                                                           |
| ------------- | -------- | -------------------- | ------------------------------------------------------------------------------------- |
| `url`         | Yes      | URL string           | The Azure DevOps organization or collection URL (e.g. `https://dev.azure.com/MyOrg`). |
| `project`     | Yes      | String               | The Azure DevOps project name.                                                        |
| `timeout`     | No       | Integer (seconds)    | Per-repository request timeout.                                                       |
| `searchPaths` | No       | Comma-separated list | Scopes the search to specific paths.                                                  |

`ado` does **not** accept `confidenceThreshold`.

**Secrets (entered interactively):**

| Secret key | Required | Description                               |
| ---------- | -------- | ----------------------------------------- |
| `password` | Yes      | Azure DevOps Personal Access Token (PAT). |

#### certify

| Setting key           | Required | Format                   | Description                                                                                        |
| --------------------- | -------- | ------------------------ | -------------------------------------------------------------------------------------------------- |
| `project`             | Yes      | String                   | The Certify project name.                                                                          |
| `connectionString`    | Yes      | OLE DB connection string | Must include `Provider=...`. Must **not** embed credentials (`user id`, `uid`, `password`, `pwd`). |
| `uidProp`             | No       | String                   | Property name used when appending the username (default `User ID`).                                |
| `pwdProp`             | No       | String                   | Property name used when appending the password (default `Password`).                               |
| `searchPaths`         | No       | Comma-separated list     | Scopes the search to specific paths.                                                               |
| `confidenceThreshold` | No       | Integer 0–100            | Minimum confidence for a match.                                                                    |

**Secrets (entered interactively — optional):**

| Secret key | Required | Description                                                       |
| ---------- | -------- | ----------------------------------------------------------------- |
| `username` | No       | Database user. Leave blank for Windows Integrated Authentication. |
| `password` | No       | Database password. Leave blank when `username` is blank.          |

#### ssm

| Setting key           | Required | Format               | Description                                             |
| --------------------- | -------- | -------------------- | ------------------------------------------------------- |
| `url`                 | Yes      | URL string           | The Solution Manager OData base URL.                    |
| `client`              | Yes      | String               | The `sap-client` query parameter (e.g. `100`).          |
| `solution`            | Yes      | String               | Solution title as shown in Solution Manager.            |
| `branch`              | Yes      | String               | Branch title as shown in Solution Manager.              |
| `rfcDest`             | No       | String               | An existing `[[rfc]].name` for optional RFC enrichment. |
| `searchPaths`         | No       | Comma-separated list | Scopes the search to specific paths.                    |
| `confidenceThreshold` | No       | Integer 0–100        | Minimum confidence for a match.                         |

**Secrets (entered interactively):**

| Secret key | Required | Description                             |
| ---------- | -------- | --------------------------------------- |
| `username` | Yes      | Solution Manager user account name.     |
| `password` | Yes      | Solution Manager user account password. |

#### alm

| Setting key           | Required | Format               | Description                                                                                                     |
| --------------------- | -------- | -------------------- | --------------------------------------------------------------------------------------------------------------- |
| `url`                 | Yes      | URL string           | The OpenText ALM server URL (e.g. `https://alm.example.com/qcbin`).                                             |
| `domain`              | Yes      | String               | The OpenText ALM domain.                                                                                        |
| `project`             | Yes      | String               | The OpenText ALM project name.                                                                                  |
| `clientDirectory`     | Yes      | Absolute path        | Absolute customer folder containing `OTAClient.dll` and `WebClient.dll` (source for staging at `testrepo set`). |
| `requirementType`     | No       | String               | Reserved for future requirements operations.                                                                    |
| `requirementAuthor`   | No       | String               | Reserved for future requirements operations.                                                                    |
| `searchPaths`         | No       | Comma-separated list | Scopes the search to specific paths.                                                                            |
| `confidenceThreshold` | No       | Integer 0–100        | Minimum confidence for a match.                                                                                 |

**Secrets (entered interactively — provide exactly one credential pair):**

| Secret key  | Required                                                 | Description                    |
| ----------- | -------------------------------------------------------- | ------------------------------ |
| `username`  | One of `username`+`password` **or** `apikey`+`apisecret` | OpenText ALM account username. |
| `password`  | One of `username`+`password` **or** `apikey`+`apisecret` | OpenText ALM account password. |
| `apikey`    | One of `username`+`password` **or** `apikey`+`apisecret` | OpenText ALM 15+ API key.      |
| `apisecret` | One of `username`+`password` **or** `apikey`+`apisecret` | OpenText ALM 15+ API secret.   |

***

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Command" overflow="wrap" %}

```batch
slabapcli.exe testrepo set --name "ALM_Demo-qtest" --type "qtest" --pipeline "ALM_Demo-S21" --setting url=https://mycompany.qtestnet.com --setting project=MyProject --test-stage "Regression Tests"
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Command" overflow="wrap" %}

```powershell
.\slabapcli.exe testrepo set --name 'ALM_Demo-qtest' --type 'qtest' --pipeline 'ALM_Demo-S21' --setting url=https://mycompany.qtestnet.com --setting project=MyProject --test-stage 'Regression Tests'
```

{% endcode %}
{% endtab %}
{% endtabs %}

`--test-stage` is optional. See [Configure Test Repositories](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/command-line-interface/configure-test-repositories.md) for the default `"{type} Tests"` value, clear-on-omit behavior, and duplicate-stage warning.

The CLI prompts for **`username`** and **`password`** interactively (secrets are not accepted via `--setting`).

{% code title="Expected output (PowerShell, abbreviated)" overflow="wrap" lineNumbers="true" %}

```log
.\slabapcli.exe testrepo set --name 'ALM_Demo-qtest' --type 'qtest' --pipeline 'ALM_Demo-S21' --setting url=https://mycompany.qtestnet.com --setting project=MyProject --test-stage 'Regression Tests'
[2026-03-08 10:45:00.123+02:00] [info] Config pathname: C:\ProgramData\Tricentis\SeaLights\ABAP Agent\config\config.toml
Enter username: myuser
Confirm username:
Enter password:
Confirm password:
Configuration for adapter 'ALM_Demo-qtest' was saved successfully.
Running connection test for 'ALM_Demo-qtest'...
Connection test passed for 'ALM_Demo-qtest' (pipeline: 'ALM_Demo-S21').
```

{% endcode %}

**Examples for other types** — each Test Tool Integrations page has a matching Command Prompt / PowerShell example:

* [Azure DevOps (ado)](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/ado.md)
* [Tosca Commander](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/tosca/connect-tosca-to-sealights.md)
* [Tosca Cloud](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/tosca-cloud/connect-tosca-cloud-to-sealights.md)
* [Excel](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/excel.md)
* [Xray](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/xray.md)
* [qTest](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/qtest.md)
* [Certify](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/certify.md)
* [SAP Solution Manager (SSM)](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/ssm.md)
* [OpenText ALM](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/test-tool-integrations/alm.md)

***

## Test a Test Repository Connection

### `slabapcli testrepo test`

Runs a live connection test for a configured test repository adapter by dispatching a task to the ABAP Agent server.

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Syntax" overflow="wrap" %}

```batch
slabapcli.exe testrepo test --pipeline <pipeline> --testrepo <name>
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Syntax" overflow="wrap" %}

```powershell
.\slabapcli.exe testrepo test --pipeline <pipeline> --testrepo <name>
```

{% endcode %}
{% endtab %}
{% endtabs %}

| Parameter    | Short flag | Required | Description                                                                                |
| ------------ | ---------- | -------- | ------------------------------------------------------------------------------------------ |
| `--pipeline` | `-p`       | Yes      | The pipeline name (must match a `[[pipeline]].name` value in `config.toml`).               |
| `--testrepo` | —          | Yes      | The test repository name (must match a `[[testrepo]].name` value linked to this pipeline). |

#### Example

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Command" overflow="wrap" %}

```batch
slabapcli.exe testrepo test --pipeline "ALM_Demo-S21" --testrepo "ALM_Demo-qtest"
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Command" overflow="wrap" %}

```powershell
.\slabapcli.exe testrepo test --pipeline 'ALM_Demo-S21' --testrepo 'ALM_Demo-qtest'
```

{% endcode %}
{% endtab %}
{% endtabs %}

{% code title="Expected output (PowerShell)" overflow="wrap" lineNumbers="true" %}

```log
.\slabapcli.exe testrepo test --pipeline 'ALM_Demo-S21' --testrepo 'ALM_Demo-qtest'
[2026-03-08 10:47:12.456+02:00] [info] Config pathname: C:\ProgramData\Tricentis\SeaLights\ABAP Agent\config\config.toml
Connection test passed for 'ALM_Demo-qtest' (pipeline: 'ALM_Demo-S21').
```

{% endcode %}

{% hint style="info" %}
If the connection test reports that the configured test repository was not available to the server (`TESTREPO_NOT_FOUND` / `TestrepoNotFound`), verify the expected `[[testrepo]]` entry and pipeline association in the active `config.toml`, then re-run the printed `slabapcli testrepo test` command. When this occurs after `testrepo set`, the configuration remains saved. See [Configuration settings](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/configuration-settings.md#live-reload-and-restart-required-fields) if a recent config edit is not yet reflected.
{% endhint %}

***

## List Test Repositories

### `slabapcli testrepo list`

Lists all test repository adapter entries defined in your `config.toml` file.

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Syntax" overflow="wrap" %}

```batch
slabapcli.exe testrepo list
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Syntax" overflow="wrap" %}

```powershell
.\slabapcli.exe testrepo list
```

{% endcode %}
{% endtab %}
{% endtabs %}

This command takes no parameters.

#### Example

{% code title="Expected output (PowerShell)" overflow="wrap" lineNumbers="true" %}

```log
.\slabapcli.exe testrepo list
[2026-03-08 10:50:00.789+02:00] [info] Config pathname: C:\ProgramData\Tricentis\SeaLights\ABAP Agent\config\config.toml
Name        : ALM_Demo-qtest
Type        : qtest
Pipeline    : ALM_Demo-S21
TestStage   : qtest Tests
Setting     : url=https://mycompany.qtestnet.com
Setting     : project=MyProject
Setting     : username=****
Setting     : password=****
Listed 1 configured test-repository adapter.
```

{% endcode %}

{% hint style="info" %}
Secret settings (`username`, `password`, `apikey`, `apisecret`, `clientId`, `clientSecret`) are always masked in the output.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sealights.io/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/abap-agent-2.0/command-line-interface/configure-test-repositories.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
