Creating Skeleton Builds in Teambuild to Publish Test Results

There are several requests on how to publish test results to a TFS server without really creating a build. The build entry is a prerequisite for publishing test results, so you will need to create one and also create an associated project configuration against which the test results will be published. You can use TeamBuild web services to do this. Here is a sample:

The following sample creates a build named ‘SkeletonBuild001’ under TeamProject ‘MyTeamProject’ and Debug/X86 configuration which can be used to publish results against. Make sure that the drop location exists before publishing test results.

using Microsoft.TeamFoundation.Client;

using Microsoft.TeamFoundation.Build.Proxy;

using System;

// This sample references Microsoft.TeamFoundation.Build.Common.dll and Microsoft.TeamFoundation.Client.dll

namespace TeamBuildSamples

{

    class Program

    {

        static void Main(string[] args)

        {

            //Construct a buildstore object connecting to MyTFSServer

            BuildStore bStore = (BuildStore)(new TeamFoundationServer("https://MyTFSServer:8080").GetService(typeof(BuildStore)));

            //Create a build entry

           

            BuildData bd = new BuildData();

    //Fill in mandatory information for BuildData object

            bd.BuildNumber = "SkeletonBuild001";

            bd.BuildType = "DummyBuildType";

            bd.TeamProject = "MyTeamProject";

            // Make sure that this drop location exists, otherwise test publish will fail

            bd.DropLocation = @"\\vse1010\drops\SkeletonBuild001";

            bd.BuildMachine = "NoBuildMachine";

            bd.RequestedBy = Environment.UserName;

            bd.BuildStatus = "Successfully Completed";

            bd.BuildQuality = "Used for Publishing Test Results";

            // Add build entry to TeamBuild DB

            bStore.AddBuild("MyTeamProject", bd);

            string buildUri = bStore.GetBuildUri("MyTeamProject", "SkeletonBuild001");

            //Create platform/flavor information against which the test results will be published

            ProjectData pd = new ProjectData();

            //Fill in mandatory information for ProjectData object

            pd.FlavourName = "Debug";

            pd.PlatformName = "x86";

            pd.ProjectFile = "Dummy.sln";

            //Add project data entry for this build.

            bStore.AddProjectDetailsForBuild(buildUri, pd);

        }

    }

}

Namaste!