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.

  • listFileDeprecated: 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.

  • stdInDeprecated: 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

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

all scenarios included

sourceFiles

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

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
Configuration reference

Last updated