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

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