views:

231

answers:

2

I'm trying to understand how to configure TFS Team Build to provide a CI solution for my project. I have a fairly common setup that I have several categories of unit tests. For simplicity lets say there are two categories:

  • Exchange2003
  • Exchange2007

Each test category needs particular software to be installed on the Build Agent so I would create two Build Agents, BuildAgentEx2003 and BuildAgentEx2007, with the obvious configurations.

Now when I kick off a CI build I want a few things to happen:

  1. Exchange2003 tests to run on BuildAganetEx2003.
  2. Exchange2007 tests to run on BuildAganetEx2007.
  3. All tests categories get run and their results aggregated.

Is that supported and if so how would I configure it.

P.S. In reality of course the situation is very much more complicated. I have a large matrix of test categories and build agents. Each Build Agent would typically be capable of running many different categories of unit tests and each category of tests can be run by one or more Build Agent. The requirement being only that each category of tests be run once for each CI build.cat

A: 

Set up one CI build for building the code base. Set up one build for every configuration you need that is a manual build.

After the CI build is successful queue a new build for every configuration using TFSBuild.exe

Pass the original build number to the queued builds as a parameter.

As the last step in the manual builds you publish the test results to the CI build using MSTest.exe

Hakan Forss
A: 

Team Build 2010 should support this scenario out the box - although it will take some work to set up build agents and assign tags to them. But once you do that you should be able to use distributed builds to build and run tests on particular build agents.

It would be much more complicated with Team Build 2008.

Ross Johnston