SpecSync Documentation
Getting StartedConfigurationGuidesDownloads
Azure DevOps
Azure DevOps
  • Introduction to SpecSync for Azure DevOps
  • Getting started
    • Getting started using SpecFlow
    • Getting started using Cucumber or other Gherkin-based BDD tool
  • Installation & Setup
    • Install as .NET tool
    • Install as .NET Console App
    • Install as native binaries for Linux or macOS
    • Install as Docker image
    • Setup and Configure
  • Features
    • Push features
      • Pushing scenario changes to Test Cases
      • Configuring the format of the synchronized test cases
      • Synchronizing Scenario Outlines
      • Add new Test Cases to an Area or an Iteration
      • Mark Test Cases as Automated
      • Setting Test Case state on change
      • Update Test Case fields
      • Attach files to Test Cases using tags
      • Customization: Setting Test Case fields with default values
      • Customization: Update custom Test Case fields on push
      • Customization: Ignoring marked Test Case steps
      • Customization: Ignoring Test Case Tags
      • Customization: Ignore non-supported local tags
      • Customization: Mapping tags
      • Customization: Synchronizing scenarios from feature branches
      • Customization: Reset Test Case state after change
      • Customization: Automatically link changed Test Cases
      • Customization: Synchronize linked artifact titles
      • Customization: Add Test Cases to Suites
      • Customization: Do not synchronize title
    • Pull features
      • Pulling Test Case changes to local scenarios
    • Common synchronization features
      • Configuration key
      • Remote scope
      • Linking Work Items using tags
      • Synchronizing Test Case hierarchies using Test Suites
      • Include synchronized Test Cases to a Test Suite (deprecated)
      • Excluding scenarios from synchronization
      • Synchronization conflict resolution
      • Re-link scenarios to new Test Cases
    • Test result publishing features
      • Publishing test result files
      • Support for Azure DevOps Test Plan / Test Suite based test execution
      • Customization: Publishing test results to multiple Test Suites
    • General features
      • Azure DevOps authentication options
      • Configuration file
      • Hierarchical configuration files
      • Local test case conditions
      • Configuration wizards
      • SpecSync plugins
    • Customizations
    • Plugin list
  • Licensing
  • Guides
    • What is my Azure DevOps project URL?
    • How to define the local feature-set to be synchronized
    • Filters and scopes
    • How to synchronize automated test cases
    • How to use SpecSync from build or release pipeline
    • How to publish test results from pipelines using the VSTest task
    • How to use the SpecSync Azure DevOps pipeline tasks
    • How to link GitHub pull requests
    • How to upgrade to a newer version of SpecSync
    • How to attach files to test results
    • Using SpecSync with SpecFlow+
    • Using SpecSync with Cucumber
    • Using SpecSync with Cypress
    • Using SpecSync with Postman
    • Using SpecSync with TestNG
    • Using SpecSync on macOS or Linux
    • Using SpecSync inside a Docker container
    • How to handle Test Cases of multiple parallel application releases
    • Migrating from SpecSync v3 to v5
    • Migrating from SpecSync v2 to v3
    • Migrating from SpecSync v1 to v2
  • Changelog
  • Release Model and Roadmap
  • Downloads
  • Reference
    • Command line reference
      • init
      • upgrade
      • push
      • pull
      • publish-test-results
      • re-link
      • version
    • Configuration reference
      • toolSettings
      • local
      • remote
      • knownRemotes
      • synchronization
        • push
        • pull
        • automation
        • state
        • areaPath
        • iterationPath
        • links
        • attachments
        • format
        • fieldUpdates
      • hierarchies
      • publishTestResults
      • specFlow
      • reqnroll
      • customizations
    • Compatibility
    • Older versions
  • Contact
    • SpecSync Support
    • Troubleshooting
    • FAQ
  • Project Website
Powered by GitBook
On this page

Was this helpful?

  1. Features
  2. Common synchronization features

Synchronization conflict resolution

PreviousExcluding scenarios from synchronizationNextRe-link scenarios to new Test Cases

Last updated 1 year ago

Was this helpful?

The push and pull commands can be used to synchronize the local test cases (e.g. scenarios in a feature file) to Azure DevOps or from Azure DevOps respectively. For the most of the time this can be done without problems, because either the local test case or the remote Test Case was modified or they have only been changed in a detail that does not effect the synchronization. In some cases though a conflict can occur. This page summarizes the options to handle such conflicts.

It is recommended to agree on a process about changing the tests with the team. Following a clear guideline on when to change the local test case and when the remote Azure DevOps Test Case is easier than to resolve change conflicts.

The conflict resolution method can be selected and configured separately for push and pull and by default they are set to defaults that are appropriate for the most of the usages (forceOverride for push and interactive for pull).

The chosen conflict resolution method can be configured using the and settings.

The following table contains the usable conflict resolution methods.

Method
Description

forceOverride

This method overrides the target without asking. Useful if the "source-of-truth" is clearly defined. This is the default value for the push command.

interactive

In case of a conflict SpecSync shows the two versions and asks the user interactively to choose. When running on the pipeline or in a non-interactive console, the conflicts will fail the test synchronization, similarly to the error option. This is the default value for the pull command.

error

The conflicting tests will be ignored and a test error is registered. The whole synchronization process will fail, but SpecSync will try synchronizing the upcoming scenarios.

skip

For conflicts a warning is shown and the particular test will be ignored (no changes made).

ignore

The conflicting tests will be ignored without a warning.

With the --force , the changes can be overridden independently of the configured method. To apply a forced override for a single test, the --force option can be used together with the --filter option, e.g. --force --filter "@tc:1234".

Choosing for the error method can be also used to get notified about conflicting changes on the server.

/synchronization/push/conflictResolution
/synchronization/pull/conflictResolution
command line option