I have an n-tier application with the different tiers running on different machines. I need to execute coded integration tests on those different machines, preferably using the MSTest framework since that’s what everything else is written in.
There’s an orchestration problem, in that before the tests on machine “B” can run, machine “A” needs to be set up correctly. VS out of the box doesn’t seem to handle that scenario so I need something else.
On the surface TFS lab manager would seem to be what I need to manage the machines, deploy the code and run the appropriate tests but the wrinkle is that the code doesn’t live there – we use Perforce for source control.
So
a) Has anyone successfully used TFS lab manager for test deployment using code that came out of another source control system? If so, how did you set it up?
or
b) Are there any alternative testing frameworks that will let me deploy code to multiple machines, execute coded tests and gather success/failure results?
I’m going to answer my own question with what I actually did: abandoned the lab idea as being just too much work for the job at hand!
It looked promising at first and I’m sure it is possible with sufficient effort but as the other answers noted it would mean substantial edits to the lab workflow to achieve my goal – way more than I can justify. Not only was there a problem with the code not being built with TFS but I also ran into problems trying to tell lab/test manager how to run which tests where.
In the end I cobbled a halfway house solution together using a powershell script to set up the environment (revert hyper-v snapshots, copy a few files around and run some remote installs) and the standard MSTest framework built into VS for executing tests against the environment.