Fields that support integration with test, build, and version control
You can customize work item types (WITs) to contain information that is generated by automated processes by adding fields that integrate with Team Foundation Build, Microsoft Test Manager, and Team Foundation version control.
Fields that integrate with Team Foundation Build
Team Foundation Build is the automated build system of Team Foundation Server. You can configure your build process by using Team Foundation Build, and Team Foundation Build can generate work items when a build fails. It can also add build information to work items that were resolved in a particular build. For this to work, Team Foundation Build requires that the following two fields be added to the work item type definition: Found In and Integration Build.
In the default process templates that Team Foundation Server provides, Found In and Integrated in Build fields appear in the type definitions for bugs. These fields associate bugs with the builds where they were found or fixed. You can use the following code snippet to add these fields to a WIT definition.
<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension"> <HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT> <SUGGESTEDVALUES> <LISTITEM value="<None>" /> </SUGGESTEDVALUES> </FIELD> <FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension"> <HELPTEXT>Product build number this bug was fixed in</HELPTEXT> <SUGGESTEDVALUES> <LISTITEM value="<None>" /> </SUGGESTEDVALUES> </FIELD>
When the Found In field is present in a WIT definition, Team Foundation Build creates a work item when a build fails, and sets the Found In field to the build number of the build that just failed. If the Found In field is missing, Team Foundation Build does not create a work item for the failed build, and everything else works as expected.
When the Integration Build field is present in the WIT definition, Team Foundation Build identifies work items that were resolved with each build and then updates those work items to set the build number in which they were resolved in the Integration Build field. If the Integration Build field is missing, Team Foundation Build does not store the build number in the work items, and everything else works as expected.
Build associations with changesets and work items
A standard build that’s based on the default build template will associate changesets and work items to builds. It does this by first retrieving the label for the previous successful build for the given build’s build definition and then determining which changesets are included in the current build that were not included in the previous build. Some or all changesets might have work items associated with them, and those work items get associated with the build. This is done as part of the a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_AssociateChangesetsAndWorkItems.
Builds and global list auto-population
The first time you queue a build for a team project using Team Foundation Build, TFS automatically adds a global list labeled “Build - <team project name>.” Each time a build is run, a LISTITEM is added to this global list with the name of the build.
By adding a GLOBALLIST element to the FIELD definition, you can provide a drop-down menu of builds that users can choose from. For example:
<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension"> <HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT> <SUGGESTEDVALUES> <LISTITEM value="<None>" /> </SUGGESTEDVALUES> <SUGGESTEDVALUES expanditems="true" filteritems="excludegroups"> <GLOBALLIST name="Builds - TeamProjectName" /> </SUGGESTEDVALUES> </FIELD>
Fields that Integrate with Microsoft Test Manager
With Test Manager, you can automate the creation of a bug or other type of work item when a test fails. For more information, see Submitting Bugs in Microsoft Test Manager.
When a work item has been created in this manner, information about the system and the steps to reproduce the bug are captured in the System Info and Repro Steps fields.
You can add these fields to work item types that you create for tracking defects using the following code snippet.
<FIELD name="System Info" refname="Microsoft.VSTS.TCM.SystemInfo" type="HTML" /> <FIELD name="Repro Steps" refname="Microsoft.VSTS.TCM.ReproSteps" type="HTML" />
For more information about additional fields used by Test Manager, see Build and test integration field reference.
Fields that integrate with Team Foundation Version Control
One of the features available in Team Foundation version control enables you to associate or resolve work items when you check in code. You might have worked on a particular work item when you make a code change and you can set that association from within the source-control check-in window when you are finished working on the code.
The ability of Team Foundation version control to resolve a work item requires that work items contain a particular action. The source control system then queries work item tracking to determine whether the work item supports that action, and if it does support that action, it also queries for the source and destination states of the transition. If the action is found, the source control system can transition the work item according to the set transition when it checks in the code.
When you use the Checkin action, you must set appropriate ‘from’ and ‘to’ states to reflect the state transition that you want.
For more information about Actions, see Automate field assignments based on State, Transition, or Reason.
Example of the Checkin Action
<TRANSITION from="Active" to="Resolved"> .... <ACTIONS> <ACTION value="Microsoft.VSTS.Actions.Checkin"/> </ACTIONS> .... </TRANSITION>
Q & A
Q: What other fields are associated with builds and Test Manager?
A: See Build and test integration field reference for additional fields,