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
  • Available customizations
  • fieldDefaults
  • customFieldUpdates
  • ignoreTestCaseSteps
  • ignoreTestCaseTags
  • ignoreNotSupportedLocalTags
  • tagTextMapTransformation
  • multiSuitePublishTestResults
  • resetTestCaseState
  • addTestCasesToSuites
  • branchTag
  • linkOnChange
  • synchronizeLinkedArtifactTitles
  • doNotSynchronizeTitle

Was this helpful?

  1. Reference
  2. Configuration reference

customizations

PreviousreqnrollNextCompatibility

Last updated 2 months ago

Was this helpful?

This configuration section contains settings for configuring customizations.

The customizations described here are .

The following example shows the available options within this section.

{
  ...
 "customizations": {
    "fieldDefaults": {
      "enabled": true,
      "defaultValues": {
        "MyCompany.MyCustomField": "Default 1",
        "MyCompany.OtherCustomField": "Default 2"
      }
    },
    "customFieldUpdates": {
      "enabled": true,
      "updates": {
        "System.Description": "Synchronized from feature {feature-name}{br}{feature-description}"
      }
    },
    "ignoreTestCaseSteps": {
      "enabled": true,
      "ignoredPrefixes": [ "COMMENT" ]
    },
    "ignoreTestCaseTags": {
      "enabled": true,
      "tags": [ "mytag", "ado-tag*" ]
    },
    "ignoreNotSupportedLocalTags": {
      "enabled": true,
      "supportedTags": [ "@myTag", "@otherTag" ]
    }    
    "tagTextMapTransformation": {
      "enabled": true,
      "textMap": {
        "_": " "
      }
    },
    "multiSuitePublishTestResults": {
      "enabled": true,
      "testPlanId": 567,
      "suites": [
        "SuiteA",
        "SuiteB",
        "#3456"
      ],
      "includeSubSuites": true,
      "publishToRequirementBasedTestSuites": true,
      "linkTagPrefixes": [ "bug" ]
    },
    "resetTestCaseState": {
      "enabled": true,
      "state": "Ready",
      "condition": "@ready"
    },
    "addTestCasesToSuites": {
      "enabled": true,
      "testSuites": [
        {
          "name": "Important Logic",
          "condition": "@important and not @external"
        }
      ]
    },
    "branchTag": {
      "enabled": true,
      "prefix": "tc.mybranch"
    },
    "linkOnChange": {
      "enabled": true,
      "links": [
        {
          "targetId": "{env:CURRENT_STORY}",
        }
      ]
    },
    "synchronizeLinkedArtifactTitles": {
      "enabled": true,
      "linkTagPrefixes": [ "story" ]
    },
    "doNotSynchronizeTitle": {
      "enabled": true
    }
  }
  ...
}

Available customizations

fieldDefaults

Setting
Description
Default

fieldDefaults/enabled

Enables the customization.

false

fieldDefaults/defaultValues

A list of key-value pair, where the key is the canonical name of the field to be updated (e.g. System.Description) and the value is the default value to be used when the test case is created.

mandatory

{
  "synchronization": {
    "fieldUpdates": {
      "MyCompany.MyCustomField": {
        "value": "Default 1",
        "update": "onCreate"
      },
      "MyCompany.OtherCustomField": {
        "value": "Default 2",
        "update": "onCreate"
      }
    }
  },
}

customFieldUpdates

Setting
Description
Default

customFieldUpdates/enabled

Enables the customization.

false

customFieldUpdates/updates

mandatory

{
  "synchronization": {
    "fieldUpdates": {
      "System.Description": {
        "value": "Synchronized from feature {feature-name}{br}{feature-description}"
      }
    }
  },
}

ignoreTestCaseSteps

Setting
Description
Default

ignoreTestCaseSteps/enabled

Enables the customization.

false

ignoreTestCaseSteps/ignoredPrefixes

An array of prefixes. The test case steps that start with any of the listed prefixes (case-insensitive) will be ignored by the synchronization.

mandatory

ignoreTestCaseTags

Setting
Description
Default

ignoreTestCaseTags/enabled

Enables the customization.

false

ignoreTestCaseTags/tags

An array of tag specifiers. The tag specifier can be a tag (e.g. mytag) or a tag prefix with tailing wildcard (e.g. ado-tag* - ignores tags like ado-tag-important). The test case tags that match to any of the listed tag specifiers will be ignored by the synchronization.

mandatory

ignoreNotSupportedLocalTags

Can be used to specify supported tags. SpecSync will only synchronize the supported tags and ignore all others. See Customization: Ignore non-supported local tags for details.

Setting
Description
Default

ignoreNotSupportedLocalTags/enabled

Enables the customization.

false

ignoreNotSupportedLocalTags/supportedTags

The list of local (scenario) tags that can be synchronized to Azure DevOps. The list can contain full tag names (e.g. @my-tag1) or tag name prefixes with tail wildcard (e.g. @my-tag*).

empty (no tags are supported)

ignoreNotSupportedLocalTags/notSupportedTags

The list of local (scenario) tags that cannot be synchronized to Azure DevOps. This setting cannot be used together with 'supportedTags'. The list can contain full tag names (e.g. @my-tag1) or tag name prefixes with tail wildcard (e.g. @my-tag*).

supportedTags setting is used

tagTextMapTransformation

Setting
Description
Default

tagTextMapTransformation/enabled

Enables the customization.

false

tagTextMapTransformation/textMap

Character or substring replacement rules in 'X':'Y' format, where 'X' is a substring in Gherkin tag and 'Y' is a substring in Azure DevOps tag.

mandatory

multiSuitePublishTestResults

Setting
Description
Default

multiSuitePublishTestResults/enabled

Enables the customization.

false

multiSuitePublishTestResults/testPlanId

The ID of the test plan to search the test suites in.

mandatory

multiSuitePublishTestResults/publishToAllSuites

When set to true SpecSync will publish the results to all test suites within the specified test plan.

false

multiSuitePublishTestResults/suites

The list of test suites to additionally publish the test results to.

empty list

multiSuitePublishTestResults/suites[]/name

The name of the Test Suite

either name, id or path is mandatory

multiSuitePublishTestResults/suites[]/id

The ID of the Test Suite

either name, id or path is mandatory

multiSuitePublishTestResults/suites[]/path

The path of the Test Suite from the root of the Test Plan, separated by / (e.g. Ordering/Card Payment).

either name, id or path is mandatory

multiSuitePublishTestResults/suites[]/testPlanId

Deprecated, use 'testPlan' instead.

not specified

multiSuitePublishTestResults/suites[]/testPlan

The name or ID of the Test Plan to search or create the test suite in, e.g. My Plan or #1234. (Optional, improves performance)

not specified

multiSuitePublishTestResults/includeSubSuites

When set to true, the results will be published not only to the specified suites, but also their direct or indirect sub-suites.

false

multiSuitePublishTestResults/publishToRequirementBasedTestSuites

When set to true, the results will also be published to the requirement-based suites of the work items linked to the test case. The considered link prefixes can be restricted using the linkTagPrefixes setting.

false

multiSuitePublishTestResults/linkTagPrefixes

Restricts the work item links to be considered for publishToRequirementBasedTestSuites.

all links are considered

resetTestCaseState

Setting
Description
Default

resetTestCaseState/enabled

Enables the customization.

false

resetTestCaseState/state

A state value (e.g. Ready) to set test case state to after updating a test case as a separate update.

mandatory

resetTestCaseState/condition

all scenarios included for state change

addTestCasesToSuites

Setting
Description
Default

addTestCasesToSuites/enabled

Enables the customization.

false

addTestCasesToSuites/testPlan

The name or ID of the default Test Plan to search or create the test suites in. Can be overridden for specific suites. E.g. My Plan or #1234.

all test plans are scanned through

addTestCasesToSuites/testSuites[]/name

The name of the Test Suite

either name, id or path is mandatory

addTestCasesToSuites/testSuites[]/id

The ID of the Test Suite

either name, id or path is mandatory

addTestCasesToSuites/testSuites[]/path

The path of the Test Suite from the root of the Test Plan, separated by / (e.g. Ordering/Card Payment).

either name, id or path is mandatory

addTestCasesToSuites/testSuites[]/testPlanId

Deprecated, use 'testPlan' instead.

not specified

addTestCasesToSuites/testSuites[]/testPlan

The name or ID of the Test Plan to search or create the test suite in, e.g. My Plan or #1234. (Optional, improves performance)

not specified

addTestCasesToSuites/testSuites[]/condition

all scenarios are considered

branchTag

Setting
Description
Default

branchTag/enabled

Enables the customization.

false

branchTag/prefix

The tag prefix to be used for linking scenarios that are updated on a branch. E.g. the prefix tc.mybranch will generate tags, like @tc.mybranch:1234.

mandatory

linkOnChange

Setting
Description
Default

linkOnChange/enabled

Enables the customization.

false

linkOnChange/links[]/targetId

The ID of the work item or pull request to link the Test Case to. Placeholders, like {env:ENVIRONMENT_VARIABLE} can be used.

mandatory

linkOnChange/links[]/targetType

The type of the Azure DevOps work item the link refers to. It is verified at the time the link is established.

can link to any work item type

linkOnChange/links[]/relationship

Tests

linkOnChange/links[]/linkTemplate

Specifies the HTTP link template of the related artifact (for GitHub Pull Request relationship). The link template can use the specified value using the {id} placeholder.

no template used

synchronizeLinkedArtifactTitles

Setting
Description
Default

synchronizeLinkedArtifactTitles/enabled

Enables the customization.

false

synchronizeLinkedArtifactTitles/linkTagPrefixes

Specifies the work item links to be considered.

mandatory

doNotSynchronizeTitle

Setting
Description
Default

doNotSynchronizeTitle/enabled

Enables the customization.

false

Enables setting default values to test case fields. Useful for custom Azure DevOps process templates. See for details.

The fieldDefaults customization setting is a shortcut for configuring the . The example above is equivalent to the following fieldUpdates setting:

Enables updating test case fields that are normally not changed by SpecSync. See for details.

A list of key-value pair, where the key is the canonical name of the field to be updated (e.g. System.Description) and the value is the template to be used to update the field. The template can contain placeholders listed in the .

The customFieldUpdates customization setting is a shortcut for configuring the . The example above is equivalent to the following fieldUpdates setting:

Can ignore (leave unchanged) test case steps with a specific prefix. See for details.

Can ignore (leave unchanged) test case tags. See for details.

Can substitute characters or sub-strings in tags when synchronizing to Azure DevOps. E.g. underscores (_) in scenario tags can be represented with spaces in Test Case tags. See for details.

Allows publishing test results to multiple Test Suites. See for details.

Allows resetting Test Case state after change as a separate work item update based on tags. See for details.

A of scenarios that should be included for state change (e.g. @ready, not @inprogress).

Allows including the synchronized Test Cases into various static Test Suites based on conditions. See for details.

A of scenarios for which the linked Test Case should be included in the Suite (e.g. @ready, not @inprogress).

Supports synchronization of scenarios on feature branches. See for details.

Allows linking changed Test Cases to a work item or pull request, related to the change. See for details.

Specify the relationship for the created link. E.g. specifying Parent means that the linked work item will be the parent of the test case work item. For linking Pull Requests it has to be set to Pull Request and GitHub Pull Request for GitHub Pull Requests (see details in our ).

Allows synchronizing linked artifact (work item) titles back to the local test case tags in @story:123;This_is_the_story_title format. See for details.

Skips synchronizing the Test Case title field (System.Title). See for details.

Enterprise features
Customization: Setting Test Case fields with default values
synchronization/fieldUpdates section
Customization: Update custom Test Case fields on push
synchronization/fieldUpdates section
Customization: Ignoring marked Test Case steps
Customization: Ignoring Test Case Tags
Customization: Mapping tags
Customization: Publishing test results to multiple Test Suites
Customization: Reset Test Case state after change
Customization: Add Test Cases to Suites
Customization: Synchronizing scenarios from feature branches
Customization: Automatically link changed Test Cases
Customization: Synchronize linked artifact titles
Customization: Do not synchronize title
Configuration reference
local test case condition
local test case condition
reference
guide