# hierarchies

Specifies Test Case hierarchies to construct from the synchronized Test Cases.

{% hint style="warning" %}
The Test Case hierarchy synchronization is only available to *SpecSync for Azure DevOps* currently. The feature will be available for *SpecSync for Jira* soon.
{% endhint %}

To read more about synchronizing Test Case hierarchies and further examples see the [Synchronizing Test Case hierarchies](https://docs.specsolutions.eu/specsync/jira/features/common-synchronization-features/synchronizing-test-case-hierarchies) page.

{% hint style="info" %}
Synchronizing to multiple hierarchies or hierarchies with more than 20 nodes requires an [Enterprise license](https://docs.specsolutions.eu/specsync/jira/licensing).
{% endhint %}

The following example shows the most common options within this section.

{% code title="specsync.json" %}

```json
{
  ...
  "hierarchies": [
    {
      "name": "folder-hierarchy",
      "type": "folders"
    }
  ],
  ...
}
```

{% endcode %}

## Settings

| Setting                           | Description                                                                                                                                                                                                                                                                                                                                                                                                   | Default                                                        |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| `name`                            | The name of the hierarchy is an identifier that can be used to refer to the hierarchy for other features (e.g. for publishing test results to that hierarchy). The name has to be unique among the defined hierarchies and it is mandatory when multiple hierarchies are specified.                                                                                                                           | `default`                                                      |
| `type`                            | Specifies the type of the hierarchy. It has to be set to one of the available [hierarchy types](https://docs.specsolutions.eu/specsync/jira/features/common-synchronization-features/synchronizing-test-case-hierarchies#supported-hierarchy-types).                                                                                                                                                          | mandatory                                                      |
| `condition`                       | A [local test case condition](https://docs.specsolutions.eu/specsync/jira/features/general-features/local-test-case-conditions) to specify which test cases should be included to this hierarchy.                                                                                                                                                                                                             | all synchronized Test Cases is included                        |
| `root`                            | Specifies the root location in Jira, where the hierarchy should be mapped to. The root location specified here will be mapped to the root of the hierarchy.                                                                                                                                                                                                                                                   | For most of the hierarchy types it is mandatory.               |
| `onAdditionalNodes`               | Specifies what to do if the hierarchy in Jira contains additional nodes (nodes that are not defined by the hierarchy). Possible values: `warning`, `delete`, `keep` and `ignore`. With `keep` the syncronized Test Cases are removed from the node, while `ignore` completely ignores the node, so Test Case duplicates are possible within the hiearchy.                                                     | `ignore` for `single` hierarchy type, `warning` for all others |
| `onAdditionalTestCases`           | Specifies what to do if the hierarchy nodes in Jira contain additional Test Cases (test cases that were not synchronized by SpecSync). Possible values: `warning`, `keep` and `remove`. With `warning` (default) a warning is displayed but test cases are kept. With `keep` the additional test cases remain in the node without warning. With `remove` the additional test cases are removed from the node. | `warning`                                                      |
| `disableUnderscoreTransformation` | The `_` character in the matched node names are automatically transformed to space by default. This behavior can be disabled by setting the `disableUnderscoreTransformation` hierarchy setting to `true`. This setting can be used for `levels` and `tag` hierarchy types.                                                                                                                                   | `false`                                                        |
| `skipFolderPrefix`                | For type `folders`, `foldersAndFiles` or `foldersAndDocumentNames`: A project-relative folder prefix to skip when constructing the hierarchy node path from the folder structure (e.g. `src/Features`).                                                                                                                                                                                                       | the full project-relative path is used                         |
| `levels`                          | For type `levels`: The level specifications. The items can contain settings: `condition`, `name`, `conditionalName`, `onNotMatching`, `nameForNotMatching`. See the [`levels` type description](https://docs.specsolutions.eu/specsync/jira/features/common-synchronization-features/synchronizing-test-case-hierarchies#the-levels-hierarchy-type) for details.                                              | mandatory for `levels`                                         |
| `tagPrefix`                       | For type `tag`: Specifies the tag prefix that specifies the hierarchy path (e.g. 'suite'). The configured tag prefix separators (by default ':') can be used with tags, e.g. `@suite:Pricing/Automated`. See the [`tag` type description](https://docs.specsolutions.eu/specsync/jira/features/common-synchronization-features/synchronizing-test-case-hierarchies#the-tag-hierarchy-type) for details.       | mandatory for `tag`                                            |
| `node`                            | For type `single`: The single node of the hierarchy. It can contain settings: `condition`, `name`, `path`. See the [`single` type description](https://docs.specsolutions.eu/specsync/jira/features/common-synchronization-features/synchronizing-test-case-hierarchies#the-single-hierarchy-type) for details.                                                                                               | mandatory for `single`                                         |
| `nodes`                           | For type `custom`: The nodes of the hierarchy. The items can contain settings: `condition`, `name`, `path`. See the [`custom` type description](https://docs.specsolutions.eu/specsync/jira/features/common-synchronization-features/synchronizing-test-case-hierarchies#the-custom-hierarchy-type) for details.                                                                                              | mandatory for `custom`                                         |

{% content-ref url="" %}
[](https://docs.specsolutions.eu/specsync/jira/reference/configuration)
{% endcontent-ref %}
