Skip to content

Traceability

Gáspár Nagy edited this page Jul 3, 2019 · 1 revision

Using tag-links to link external artifacts to a scenario

The scenarios might be related to external artifacts, like work items in Azure DevOps, Jira or GitHub.

When the scenarios are tagged with the identifiers of these external artifacts (e.g. @bug:1234 refers to the Bug #1234 in Azure DevOps), Deveroom can display these tags as clickable links that navigate to the artifact in the browser.

Using tag-links with SpecSync for Azure DevOps

SpecSync for Azure DevOps is a tool by Spec Solutions that can synchronize scenarios to Azure DevOps or TFS test case work items and link them to other related work items (e.g. to the related Product BackLog Item). See more information in the SpecSync for Azure DevOps documentation.

Deveroom can match the tag pattern used by SpecSync and turn the related tags to links that open the related work items in the browser, no additional configuration is needed.

Using tag-links for custom artifacts

The tag-link feature of Deveroom can be used to link nearly any external artifacts. For that the tag patterns and the related URL templates have to be configured in the traceability/tagLinks section of the Deveroom configuration file. Multiple tag patterns can be configured.

To configure a tag pattern, you need to

  • Add a deveroom.json configuration file to the project root. (You can add it using the "Add / New item..." dialog, see Configuration for details.)
  • Add a traceability/tagLinks array section to the file.
  • Add a new JSON object to the traceability/tagLinks array (see example below)
  • Set tagPattern to a regular expression that matches to the tag name (without leading '@' sign). The identifier of the artifacts should be matched with a named regex group. E.g. issue\\:(?<id>\\d+) for tags, like @issue:1234. (Note: the \ characters have to be masked in JSON as \\.)
  • Set urlTemplate to an URL template to generate the external link. It can contain parameters in an '{paramName}' format, where 'paramName' refers to the regular expression group name in the 'tagPattern'. E.g. 'https://github.com/me/my-project/issues/{id}'

Example

The following example turns @issue:1234-style tags to a GitHub issue link and @doc:Configuration-style tags to a GitHub wiki page link.

{
  ...
  "traceability": {
    "tagLinks": [
      {
        "tagPattern": "issue\\:(?<id>\\d+)",
        "urlTemplate": "https://github.com/specsolutions/deveroom-visualstudio/issues/{id}"
      },
      {
        "tagPattern": "doc\\:(?<title>\\w+)",
        "urlTemplate": "https://github.com/specsolutions/deveroom-visualstudio/wiki/{title}"
      }
    ]
  }
}