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

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

Last updated