# Pushing scenario changes to Test Cases

SpecSync can synchronize scenarios and scenario execution results with Jira Test Cases. The most commonly used command to achieve this is to upload (push) the scenario changes to Test Cases that is provided using the SpecSync [`push` command](/specsync/jira/reference/command-line-reference/push-command.md).

The SpecSync push command processed all scenarios in the [local feature set](/specsync/jira/important-concepts/how-to-define-the-local-feature-set-to-be-synchronized.md) (e.g. the `features` folder of your project), detects if there were any change since the last synchronization and updates the Test Case if necessary.

You can find all available command line options for the push command in the [push command line reference](/specsync/jira/reference/command-line-reference/push-command.md). The configuration options related to push are in the [synchronization](/specsync/jira/reference/configuration/configuration-synchronization.md) section of the configuration file.

The connection between the scenario and the Test Case in Jira is established with a *test case link tag*. By default the link tag uses the format `@tc:P01-T1234`, but both the `tc` prefix and the separator `:` can be configured (with `synchronization/tagPrefixSeparators` and `synchronization/linkLabelSeparator`), so you can also have test case links that use different format, e.g. `@TestCase=P01-T1234`. In the documentation we use the default test case link tag format.

Depending on the changes of the scenario, the push command performs different actions in Jira as the following table shows.

| Changes                                                                                                | Actions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The scenario is new (not yet linked to a Test Case)                                                    | A new Test Case work item is created and the scenario is tagged with a link tag (e.g. `@tc:P01-T1234`) to document the ID of the created Test Case.                                                                                                                                                                                                                                                                                                                                                                                                         |
| The scenario is linked and up-to-date with the Test Case                                               | No action is taken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| The scenario has been changed since the last synchronization                                           | The Test Case is updated with the changes. (No change in the feature file.)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| The scenario has been synchronized, but since the last synchronization the Test Case has been updated. | <p>The push command by default overwrites the changes of the Test Case fields that are maintained by SpecSync (e.g. title, steps, tags). The changes in other fields (e.g. description) are not changed.</p><p>A different conflict handling method can also be configured. See <a href="/pages/GB2vSKH5OxdNVfobsRCH">Synchronization conflict resolution</a> for details.</p><p>In case you would like to preserve the changes of the fields maintained by SpecSync, you have to use the <a href="/pages/IooaBiftoSHbOuWKwZ9w">pull command</a> first.</p> |
| The scenario has been removed                                                                          | SpecSync does not delete the related Test Case. If SpecSync is configured with a *remote scope* (recommended), the Test Case will be tagged with `specsync:removed`. You can review the Test Cases of this tag and delete them manually. (The tag is removed from the Test Case if the scenario is restored.) For details on how to specify the remote scope and how does SpecSync detects hand processes removed local test cases, please check the [Remote scope](/specsync/jira/features/common-synchronization-features/remote-scope.md) documentation. |

{% hint style="info" %}
The SpecSync push command needs to modify the feature file when a new scenario is synchronized. The feature file change has to be preserved in the source control (commit & push), otherwise when other users perform a push, Test Case duplicates will be created.

When performing the push on a build pipeline, or in any other cases where local changes cannot be preserved, the push command has to be invoked with the `--disableLocalChanges` switch. More information about using SpecSync in build pipelines can be found in the [Use SpecSync from build or release pipeline](/specsync/jira/important-concepts/synchronizing-test-cases-from-build.md) guide.
{% endhint %}

{% hint style="info" %}
You can perform the push operation with the `--linkOnly` flag so that it only links new scenarios and does not update existing Test Cases.
{% endhint %}

{% hint style="info" %}
SpecSync operations, including the push command supports "dry-run" mode using the `--dryRun` command line option. In dry-run mode, no change is made neither to Jira nor to the feature files, so you can test the impact of an operation without making an actual change.
{% endhint %}

## Test Case fields updated by the push command

{% hint style="info" %}
This documentation page is in progress. Please check back later.
{% endhint %}

## Include synchronized Test Cases to Test Case hierarchies

SpecSync can also help you to organize the remote Test Cases into hierarchical structures.

For details on how to include Test Cases to hierarchies, please check the [Synchronizing Test Case hierarchies](/specsync/jira/features/common-synchronization-features/synchronizing-test-case-hierarchies.md) feature documentation.


---

# Agent Instructions: 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:

```
GET https://docs.specsolutions.eu/specsync/jira/features/push-features/pushing-scenario-changes-to-test-cases.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
