Setup and Configure
Once you have installed SpecSync for Azure DevOps tool, you need to configure it. This means you have to create a SpecSync configuration file (specsync.json) that contains the Azure DevOps project connection details and other synchronization settings.
Step 1: Define feature file sets
SpecSync has to be configured for every feature file set. Feature file set is a folder that contains feature files that you want to synchronize as one batch.
Feature file set is a term introduced by SpecSync to denote the set of feature files that belong together in a platform independent way. Earlier we used the term project folder, but it was misleading, because people might call different things as "project" on .NET, Java and node.js platforms and also it could be confused with Azure DevOps projects.
If you use SpecSync with SpecFlow, the Visual Studio projects configured with SpecFlow are the feature file sets.
For other BDD tools, like Cucumber, usually the features
folder(s) are set as feature file sets.
Each feature file set will have its own SpecSync configuration file (specsync.json
). For projects with multiple feature file sets, you can use hierarchical configuration files as well.
It is up to you how you define your feature file sets. The following table contains a few usual setup variations.
.NET solution with a single SpecFlow project
The SpecFlow project folder (e.g. MyProject.Specs
)
.NET solution with multiple SpecFlow projects
Each SpecFlow project folder (e.g. MyProject.BackOffice.Specs
and MyProject.ClientApp.Specs
)
node.js app with Cucumber.js
The parent folder of the features
folder (e.g. /src/test/
)
node.js app with multiple feature file sets
The parent folders of the features
folders (e.g. /src/test/backoffice/
and /src/test/clientapp/
)
Java app with Cucumber Java
The parent folder of the features
folder (e.g. /src/test/resources/
)
You can also consider setting the features folder itself as a root of the feature file set (e.g. /src/test/resources/features/
instead of /src/test/resources/
).
The feature file sets of your project and be changed later by moving the specysnc.json
configuration file to a different location.
Step 2: Initialize configuration file using the SpecSync init command
The easiest way to initialize the configuration file and configure the most important settings is to use the SpecSync init
command. To use the command open a command window or bash shell and change the current directory to the root folder of the feature file set and invoke the following command.
The init command will ask a few questions in order the setup the connection to the Azure DevOps project, like the project URL and the authentication details. If you are unsure about what is exactly your Azure DevOps project URL, please check the What is my Azure DevOps project URL page. You can fine more information about the authentication options in the Azure DevOps authentication options page.
It is recommended to let the init command test the authentication to the Azure DevOps project to make sure the connection is configured properly.
Step 3: Review SpecSync features and extend configuration settings
The init command configures the settings that are enough for the first synchronization. SpecSync comes with useful default values for all settings, but you can still review the SpecSync features and extend the configuration if you need to. It is recommended to think about whether you would like to exclude any scenarios from the synchronization or consider including all Azure DevOps Test Cases synchronized by SpecSync into a Test Suite.
FeaturesConfiguration referenceStep 4: Verify setup by synchronizing scenarios
When the SpecSync configuration file is complete, you can perform the first synchronization task and verify the results using the push
command.
For larger feature file sets it is recommended to make the first synchronization only for a few selected scenarios tagged with a particular tag. You can even temporarily tag a few scenarios in order to test the synchronization. In our example we assume that the selected scenarios are tagged with @specsync_test
.
To use the command open a command window or bash shell and change the current directory to the root folder of the feature file set and invoke the following command. For all command line option of the push command, please check the command line reference.
The synchronization should run successfully and SpecSync should create Test Cases in Azure DevOps for the selected scenarios and link to them using a tag.
In case of errors, you can retry the synchronization with an additional --verbose option that displays additional diagnostic information. If this does not help, please check the Troubleshooting page or contact SpecSync Support.
Setup SpecFlow plugin to support "Test Suite based execution with Scenario Outline wrappers" automation strategy for .NET SpecFlow projects
SpecSync can synchronize scenarios to Azure DevOps Test Cases and publish test execution results without any additional NuGet package.
There is a special way to publish test results that require you to install a SpecFlow plugin as a NuGet package. This special way, the "Test Suite based execution with Scenario Outline wrappers" automation strategy is described in detail in the documentation that describes the conditions when this strategy has to be used.
The exact NuGet package to be installed depends on the SpecFlow version of your project. For example for SpecFlow v2.4.*
, install SpecSync.AzureDevOps.SpecFlow.2-4
. The following table contains the supported SpecFlow versions and the related plugin packages.
If your project is not configured to use the "Test Suite based execution with Scenario Outline wrappers" automation strategy, the plugin will not have any impact (can be safely removed).
Last updated