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
  • Step 1: Verify compatibility
  • Step 2: Review breaking changes
  • Step 3: Upgrade SpecSync
  • Step 4: Perform SpecSync upgrade command
  • Step 5: Review configuration changes and perform synchronization
  • Step 6: Review Azure DevOps pipeline usage

Was this helpful?

  1. Guides

Migrating from SpecSync v3 to v5

PreviousHow to handle Test Cases of multiple parallel application releasesNextMigrating from SpecSync v2 to v3

Last updated 2 months ago

Was this helpful?

The licensing model of SpecSync allows you to use any versions, so it is recommended to always upgrade to the latest version.

SpecSync changed to use semantic versioning from v5 on. This means that the changes that earlier were minor version changes (e.g. v3.3 to v3.4) are now represented with major version changes. The version that follows v3.4 was earlier planned as v3.5 (or v1.4 in case of SpecSync for Jira) but promoted now to v5.

SpecSync for Azure DevOps v5 has introduced a couple of useful improvements but the features and the configuration is highly backwards compatible with the v3 releases, therefore the migration process is usually simple.

You can find a complete list of improvements in the .

To perform the version upgrade, please follow the steps below.

Step 1: Verify compatibility

Check the minimum . There are a few older Azure DevOps server versions that are not supported by v5. In case you need to synchronize scenarios with any of these you cannot upgrade to v5. As these sever version are not supported by Microsoft anymore, we recommend upgrading to a newer version.

Server versions not supported by v5 anymore:

  • Team Foundation Server 2017 (Microsoft support ended: )

  • Team Foundation Server 2018 (Microsoft support ended: )

  • Azure DevOps Server 2019 (Microsoft support ended: )

Some older .NET versions are not supported anymore. Please note that the .NET version requirement is only about the .NET SDK installed in order to run SpecSync. The synchronize project can still target old .NET versions as well.

If you cannot install a compatible .NET version to your systems where SpecSync is executed, we recommend using the SpecSync or execute SpecSync from .

.NET versions not supported by v5 anymore:

  • .NET 3.1

  • .NET 5

Step 2: Review breaking changes

Besides the server versions or .NET frameworks that are not supported anymore, there are also a few minor breaking changes as well.

These are partially related to removing features that have been marked deprecated earlier. The features that have been deprecated always provide a warning, so if your SpecSync v3.4 commands currently execute without warnings, these will not impact your usage.

Step 3: Upgrade SpecSync

Step 4: Perform SpecSync upgrade command

One of the new features of SpecSync v5 is the upgrade command. This command can be used to invoke the upgrade wizard that automatically fixes changes in the configuration file (e.g. for renamed configuration settings) and also prompts for configuring additional new features or configuration options.

dotnet specsync upgrade

The upgrade command only modifies the configuration file but it does not change anything in the Azure DevOps server. So you can perform the upgrade command safely and review the changes in the configuration file manually before performing a synchronization.

You do not have to configure all optional feature with the upgrade command in one step. You can of course configure these features also manually by modifying the configuration file, but you can also re-run the upgrade command later to configure these.

Step 5: Review configuration changes and perform synchronization

Once the upgrade command has been executed, you can review the changes of the configuration file.

If the changes look good, you can perform a synchronization with the push command. It is recommended first to review the synchronization steps without actually changing the Azure DevOps server using the --dryRun option.

dotnet specsync push --dryRun

If the result is good, you can do the final synchronization with the push command.

dotnet specsync push

Step 6: Review Azure DevOps pipeline usage

SpecSync v5 has improved integration with Azure DevOps pipelines. The most important change is that the task will not fail automatically on warnings, but will register the warning to the pipeline result instead. Therefore the option --zeroExitCodeForWarnings is not needed anymore.

If you want to fail the pipelines for warnings, use the --treatWarningsAsErrors option.

The remaining breaking changes do not impact the most of usages, but please review the complete list of

Upgrade SpecSync to the latest v5 version. Please check the guide for detailed steps.

How to upgrade to a newer version of SpecSync
January, 2022
January, 2023
April, 2024
binary installation
Docker image
supported Azure DevOps server version
Changelog
breaking changes