customizations
This configuration section contains settings for configuring customizations.
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": {
"_": " "
}
},
"requirementSynchronization": {
"enabled": true,
"requirements": [
{
"targetType": "User Story",
"condition": "$sourceFile ~ **/*.requirement.feature",
"tagPrefix": "req",
"linkFolderTests": true
}
]
},
"multiSuitePublishTestResults": {
"enabled": true,
"testPlan": "My Plan",
"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}",
}
]
},
"synchronizeLinkedResourceTitles": {
"enabled": true,
"linkTagPrefixes": [ "story" ]
},
"doNotSynchronizeTitle": {
"enabled": true
}
}
...
}Available customizations
fieldDefaults
Enables setting default values to test case fields. Useful for custom Azure DevOps process templates. See Customization: Setting Test Case fields with default values for details.
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
The fieldDefaults customization setting is a shortcut for configuring the synchronization/fieldUpdates section. The example above is equivalent to the following fieldUpdates setting:
customFieldUpdates
Enables updating test case fields that are normally not changed by SpecSync. See Customization: Update custom Test Case fields on push for details.
customFieldUpdates/enabled
Enables the customization.
false
customFieldUpdates/updates
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 reference.
mandatory
The customFieldUpdates customization setting is a shortcut for configuring the synchronization/fieldUpdates section. The example above is equivalent to the following fieldUpdates setting:
ignoreTestCaseSteps
Can ignore (leave unchanged) test case steps with a specific prefix. See Customization: Ignoring marked Test Case steps for details.
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
Can ignore (leave unchanged) test case tags. See Customization: Ignoring Test Case Tags for details.
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.
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 patterns with wildcards (e.g. @my-tag*, @area-*-enabled).
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 patterns with wildcards (e.g. @my-tag*, @area-*-enabled).
supportedTags setting is used
tagTextMapTransformation
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 Customization: Mapping tags for details.
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
Allows publishing test results to multiple Test Suites. See Customization: Publishing test results to multiple Test Suites for details.
multiSuitePublishTestResults/enabled
Enables the customization.
false
multiSuitePublishTestResults/testPlan
The name or ID of the test plan to search the test suites in, e.g. My Plan or #567.
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[]/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
Allows resetting Test Case state after change as a separate work item update based on tags. See Customization: Reset Test Case state after change for details.
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
A local test case condition of scenarios that should be included for state change (e.g. @ready, not @inprogress).
all scenarios included for state change
requirementSynchronization
Synchronizes requirement source documents (e.g. feature files) to Azure DevOps work items and optionally links nearby scenarios to those requirements. See Customization: Requirement Synchronization for details.
requirementSynchronization/enabled
Enables the customization.
false
requirementSynchronization/requirements[]/targetType
Work item type created for the requirement (e.g. User Story).
mandatory
requirementSynchronization/requirements[]/condition
Filter that selects requirement sources (for example $sourceFile ~ **/*.requirement.feature).
mandatory
requirementSynchronization/requirements[]/tagPrefix
Tag prefix used to store the requirement ID in the source (e.g. @req-id:1234).
mandatory
requirementSynchronization/requirements[]/source
Source node to synchronize as requirement: Feature or Rule.
Feature
requirementSynchronization/requirements[]/acceptanceCriteriaSeparator
Separator text in the description that splits acceptance criteria from the main description.
not parsed, but the entire description is used
requirementSynchronization/requirements[]/linkFolderTests
Automatically link scenarios in the same folder (and sub-folders) as the requirement to the requirement work item.
false
requirementSynchronization/requirements[]/linkContainerTests
Automatically link scenarios in the same source document to the requirement work item.
false
requirementSynchronization/requirements[]/branchTagPrefix
Branch-specific tag prefix used together with customizations/branchTag when synchronizing on feature branches.
not specified
requirementSynchronization/requirements[]/links
Optional link rules (same structure as synchronization/links) to control how tags on the requirement document create links to other work items.
no extra links
requirementSynchronization/requirements[]/fieldUpdates
Field update rules applied to the requirement work item (same syntax as synchronization/fieldUpdates).
none
requirementSynchronization/requirements[]/linkOnChange/enabled
Enables linking changed requirements to another work item or pull request.
false
requirementSynchronization/requirements[]/linkOnChange/links
Link definitions used when linkOnChange is enabled (same structure as customizations/linkOnChange/links).
mandatory when linkOnChange/enabled is true
addTestCasesToSuites
Deprecated: addTestCasesToSuites has been replaced by hierarchies. Please use the hierarchies configuration for new setups. You can automatically migrate your existing configuration by running the specsync upgrade command.
The legacy Add Test Cases to Suites customization remains supported for backward compatibility but will be removed in a future major release.
Allows including the synchronized Test Cases into various static Test Suites based on conditions. See Customization: Add Test Cases to Suites for details.
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[]/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
A local test case condition of scenarios for which the linked Test Case should be included in the Suite (e.g. @ready, not @inprogress).
all scenarios are considered
branchTag
Supports synchronization of scenarios on feature branches. See Customization: Synchronizing scenarios from feature branches for details.
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
Allows linking changed Test Cases to a work item or pull request, related to the change. See Customization: Automatically link changed Test Cases for details.
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
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 guide).
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
synchronizeLinkedResourceTitles
Allows synchronizing linked artifact (work item) titles back to the local test case tags in @story:123;This_is_the_story_title format. See Customization: Synchronize linked resource titles for details.
synchronizeLinkedResourceTitles/enabled
Enables the customization.
false
synchronizeLinkedResourceTitles/linkTagPrefixes
Specifies the work item links to be considered.
mandatory
doNotSynchronizeTitle
Skips synchronizing the Test Case title field (System.Title). See Customization: Do not synchronize title for details.
doNotSynchronizeTitle/enabled
Enables the customization.
false
Last updated
Was this helpful?