We have just released SpecSync for Azure DevOps v3.3.0, our newest main release with a couple of usability improvements and more! This post contains the most important improvements and guidance for the upgrade process. You can check the complete list of features, improvements and fixes in the Changelog page of our documentation.
How to upgrade?
The new version is a new main release, which means that upgrading might require some considerations. The upgrading to v3.3.0 from an earlier v3 version is fortunately easy. In the majority of the cases you don’t need to perform manual steps, just follow the usual upgrade procedure documented in this guide.
Nevertheless there are a few important compatibility note that you should take care of. The following list contains the most important ones, but make sure you check the full list of breaking changes.
- The default synchronization of automated Test Cases and Scenario Outlines have changed (see details below). These changes are not applied automatically for all Test Cases immediately, but only when the Test Case will otherwise change. To force applying these changes for all Test Cases at once you may invoke the “push” command with the “–force” option.
- If you use SpecSync with SpecFlow v2 and you have used the legacy Test Plan / Test Suite based execution model using the SpecSync SpecFlow plugins, you need to keep using the old (v3.2) plugins but upgrade SpecSync to v3.3.
- If you have created SpecSync plugins, their source code requires minimal modifications to be conform with v3.3. The sample plugins have been updated already so you can check the changes made for those.
We recommend you to upgrade to the new version as soon as possible, because with the new main release out we will stop providing regular bugfixes for v3.1 and v3.2 will not receive any new features, just important hotfixes (check out our updated versioning policy here). If you run into any trouble with upgrading or need help, please don’t hesitate to contact us.
Usability improvements in v3.3
There are a couple of usability improvements in v3.3.
The most important is that now every SpecSync command has a co-called “dry-run” mode. In dry-run mode SpecSync will not perform any changes neither to Azure DevOps nor to the file system, so you can easily check the impact of a synchronization command without any risk. The dry-run mode can be enabled using the –dryRun option on the command line.
A small, but useful change is the improved synchronization summary. SpecSync will show now not only the number of processed scenarios but also the number of changed or up-to-date ones.
It is also easier to perform the synchronization just for a smaller set of scenarios (e.g. you only want to synchronize the feature files you currently work on). This is practical for bigger projects where the full synchronization takes more time. You can now instruct SpecSync to only synchronize the new (unlinked) scenarios with the –linkOnly option or just a set of feature files using the –sourceFileFilter option that supports glob patterns, like “Folder1/**/*.feature”. Similarly to the link-only option for push, there is now a –createOnly option for pull that creates new scenarios for the new Test Cases, but does not change the existing ones.
Improved synchronization & scenario attachments
The synchronization rules have also been improved in v3.3 with a few smaller but useful features.
The work item links are now fully synchronized. It means if you have once established a work item link using a configured tag and later the tag is removed from the scenario, SpecSync will automatically remove the related link as well from the Test Case. The links you add manually to the Test Case are never removed of course.
SpecSync v3.3 supports now the new Gherkin features, like tagged rules and rule-specific backgrounds. The background steps are also better handled now by the pull command.
The Gherkin scenario outlines support having additional documentation columns in the examples part that are not used as a placeholder in the scenario. This is a useful practice to preserve the purpose of the different examples. Unfortunately Azure DevOps Test Cases do not support capturing parameters that are not used so this useful information has not been synchronized so far. SpecSync v3.3 can detect the use of such parameters and will add an additional pseudo-step to the Test Case that list all parameters. This way all information can be preserved. This behavior is enabled by default now, but you can change it using the “synchronization/format/showParameterListStep” configuration setting.
In some cases, the scenario has related files (e.g. an attached specification document or an Excel file with some data values). With SpecSync you can synchronize these files as Test Case attachments in Azure DevOps. For that you need to specify these files as scenario tags using the “attachment” prefix (e.g. “@attachment:overview.docx”) or with a customized prefix. You can also use glob patterns and configure multiple tag prefixes as well. The feature is not enabled by default, in order to use it you need to set the “synchronization/attachments/enabled” configuration setting to true. Check out the feature description with all available options in the documentation.
SpecSync can mark the synchronized Test Cases as automated, but the “Automated Test Type” has not been set so far (the default value of “Unit Test” was used). Now SpecSync sets this field by default to “SpecFlow” or “Gherkin” depending on whether you synchronize a SpecFlow project or a generic Gherkin project. You can even specify a custom value with the “synchronization/automation/automatedTestType” configuration setting.
The set of feature files to be synchronized can also be better specified now. With the “local/sourceFiles” setting, you can limit the feature files from a folder or .NET project using glob patterns.
Improved support for products with multiple active release branches
There are product teams who need to support multiple releases. In the source code this is usually handled with source-control branches. The Test Cases in Azure DevOps cannot have multiple editable version unfortunately, so synchronizing the scenarios from a branched source control to non-branched Test Cases is not trivial.
We have a guide in the SpecSync documentation that discusses the possible solutions in detail, but with v3.3 the set of available options have been extended by a support for the Azure DevOps “Copy Test Plan” operation. The “Copy Test Plan” is one of the suggested options by Microsoft to create duplicates of all Test Cases when a new product line starts. The new SpecSync “re-link” command can pick up the result of the “Copy Test Plan” operation and update all Test Case link in the feature files to refer to the cloned version of the Test Cases. Please check the feature documentation for details.
Need help?
As SpecSync has a subscription-based licensing model, the existing licenses are automatically valid for all versions, including v3.3 as well of course. The licenses include support, so feel free to contact us and ask for help. We are happy to provide you guidance. We are also interested to hear about any feature suggestions or general feedback as well.