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
  • Settings
  • Example: Synchronize feature files of a SpecFlow project
  • Example: Synchronize feature files from the features folder
  • Example: Synchronize specific feature files

Was this helpful?

  1. Reference
  2. Configuration reference

local

This configuration section contains settings for the local repository (file system) containing the feature files.

The following example shows the available options within this section.

{
  ...
  "local": {
    "featureFileSource": {
      "type": "projectFile",
      "filePath": "MyProject.Specs\\MyProject.Specs.csproj"
    },

    "tags": "@done and not (@ignored or @planned)",

    "sourceFiles": [
      "Folder1/",
      "Folder3/**/alpha*.feature"
    ],
    
    "defaultFeatureLanguage": "en-US"
  },
  ...
}

Settings

Setting
Description
Default

featureFileSource

The feature file source configuration.

Detect project file in the folder of the configuration file

featureFileSource/type

The type of the feature file source configuration. Available options: projectFile, folder, listFile and stdIn.

  • projectFile — Loads feature file list from a .NET C# project file (.csproj). SpecSync detects the project file by extension in the folder of the configuration file by default, but the project file path can also be specified in the local/featureFileSource/filePath setting.

  • folder — Loads the feature files from a particular folder and its sub-folders. The folder can be specified in the featureFileSource/folder setting.

  • listFile — Deprecated: This setting will be removed in a future version. It is recommended to use folder value in combination with sourceFiles setting instead. Loads the feature file list from a text file. Each line of the text file should contain the path of a feature file. Empty lines and lines start with # are ignored. The feature file path can be absolute or a relative path to the config file folder.

  • stdIn — Deprecated: This setting will be removed in a future version. It is recommended to use folder value in combination with sourceFiles setting instead. Loads the feature file list from the standard input stream. The content of the input stream are handled in the same was as the listFile option.

projectFile

featureFileSource/filePath

The path of the feature file source file. Can contain an absolute or a relative path to the config file folder. It may contain environment variables in ...%MYENV%... form.

mandatory for types projectFile, listFile

featureFileSource/folder

The folder to search the feature files in when type was set to folder. Can contain an absolute or a relative path to the config file folder. It may contain environment variables in ...%MYENV%... form.

load feature files from the folder of the config file

tags

all scenarios included

sourceFiles

all scenarios included

defaultFeatureLanguage

The default feature file language, e.g. de-AT.

get from SpecFlow config or use en-US

Example: Synchronize feature files of a SpecFlow project

The SpecFlow project can be detected in the folder of the configuration file usually, in this case no additional configuration is required. (SpecSync tries to find a .csproj file in the folder.) In case there are multiple .NET project in the folder or the configuration file is not stored in the project root, you should configure SpecSync as below:

{
  ...
  "local": {
    "featureFileSource": {
      "type": "projectFile",
      "filePath": "MyProject\\MyProjectFile.csproj"
    }
  },
  ...
}

Example: Synchronize feature files from the features folder

For Cucumber-based projects, it is common to store the feature files in a folder called features. In order to synchronize the feature files with this setup, the feature file source has to be configured to folder and the required folder path has to be specified in the folder setting:

{
  ...
  "local": {
    "featureFileSource": {
      "type": "folder",
      "folder": "features"
    }
  },
  ...
}

You can invoke the synchronization as usual:

path-to-specsync-package/tools/SpecSync4AzureDevOps.exe push

Example: Synchronize specific feature files

The following example synchronizes a specific set of feature files.

Let's imagine a folder structure as the following:

features/
features/feature_a.feature
features/group_a/feature_b.feature
features/group_a/feature_c.feature
features/group_a/area_1/feature_d.feature
features/group_b/feature_e.feature

In this example SpecSync is configured to synchronize all feature files that are:

  • within features/group_b (so currently feature_e.feature)

  • have a name that starts with feature_d (so currently features/group_a/area_1/feature_d.feature)

{
  ...
  "local": {
    "featureFileSource": {
      "type": "folder"
    },
    "sourceFiles": [
      "features/group_b/",
      "features/**/feature_d*.feature"
    ]
  },
  ...
}

You can invoke the synchronization as usual:

path-to-specsync-package/tools/SpecSync4AzureDevOps.exe push
PrevioustoolSettingsNextremote

Last updated 2 years ago

Was this helpful?

A of scenarios that should be included in synchronization (e.g. not @ignore or @done and not (@ignored or @planned)). See for details.

An array of with source file predicates (glob patterns) of files that should be included in synchronization (e.g. Folder1/ or Folder3/**/alpha*.feature). See for details.

Configuration reference
local test case condition
Excluding scenarios from synchronization
local test case conditions
Excluding scenarios from synchronization