PLEASE NOTE: This is for Visual Studio 2010. For the VS2012 version, please click here.
Introduction
There have been a few good posts recently on how to integrate Physical Environments into the Build-Deploy-Test cycle in Visual Studio 2010. This one by Colin Dembovsky (and the Darshan Desai one it references) explains how to target a physical environment out of the box with TFS.
But setting up those physical environments and registering them with Lab Center is still a manual task. What I want to do as part of my Build-Deploy-Test cycle is to provision a brand new virtual machine from VmWare, join it to my domain, install the test controllers and test agents, register those test controllers and agents with TFS and construct a Physical Environment in TFS/Lab Center containing those VmWare machines ready for testing. And I want to be able to do that by calling a web service, running a script or pushing a button. And I want the entire process to be automated. How?
This series of posts will achieve that:
Background
I am often asked by customers whether it is possible to use VmWare machines as part of their development effort in VS2010 and Lab Center. And the answer is Yes.
And No.
And Of Course.
And It Depends
So I’m glad I cleared that up! Whether they can use VmWare is really the wrong question. What they should be asking is Can we use VmWare as part of our Test Automation? and Can we use VmWare as part of our nightly Build-Deploy-Test cycle?. So here goes…!
Can we use VmWare as part of our Test Automation?
Yes. Microsoft Test Manager [MTM] can do this by targeting a ‘physical enviroment’ that contains VmWare machines. Before targetting VmWare from MTM you need to:
That is a typical approach taken by clients that have an investment in VmWare. Once the VmWare machines have been configured, you can target those machines in MTM:

The astute technical term for manually configuring those VmWare machines, test controllers and physical environments is: ‘ballache’.
These posts will show you how to automate the creation of VmWare Environments for use in MTM and Lab Center. By the end of this series of posts, you will have a set of scripts that will automatically construct brand new VmWare Environments from the ground up, install the Test Controllers and Test Agents, register them with TFS and construct a Physical Environment to be ready for use with MTM. All automatically.
We do a build every night and want to install and test our software on VmWare Environments automatically afterwards. Can we do that?
Yes! Absolutely! The problem is that out of the box, the Build-Deploy-Test Workflow is designed to target Virtual Environments managed in Lab Center. Lab Center can only manage virtual environments built on Hyper-V and SCVMM. Lab Center has no idea how to start, stop, provision, clone or manage snapshots on a machine that is not managed by SCVMM and it collectively treats every such machine as a ‘Physical Machine’. So if we want to target VmWare and its features as part of Build-Deploy-Test, we need to write the necessary glue ourselves.
Let’s get started…!



