One area that I have always found a challenge is being able to get my automated builds (in whatever guise, MSBuild Nant etc) to deploy the created solution (WSP) to a remote machine, install and test it works and then report back on the success of failure.

I have tried PSExec << just not reliable

I'm interested in the new Windows 2008 world how people are doing this? Powershell? Custom service on remote machine to accept the files?

4 Answers
4

CruiseControl.NET, NAnt/MSBuild, WSPBuilder and some PowerShell scripts along with a virtual machine. Cruise kicks off the process where the VM starts up from a template and the scripts/solutions are deployed (via a network share). The VM runs automated scripts (Selenium) to automate some tests and report back out to Cruise (and other tools). The entire thing is torn down at the end and deleted. This runs once a day for integration tests (obviously) because of the time involved (takes about 10 minutes for the entire suite to run, most of which is spinning up the VM).

For other testing, unit tests for everything using TypeMock Isolator to mock out the SharePoint stuff. Been checking out sporm for unit testing rather than mocking everything out with TypeMock (which is painful sometimes).

I have leveraged TFS and our companies open source project (TFS Deployer) to automate the deployment onto servers. Basically changing the build quality in VSTS triggers an event that the TFS Deployer agent on the remote computer has subscribed to. This then pulls down the relevant files from a "drop" folder that has been generated by the build server and deploys them on the server. It leverages PowerShell to do the deployment and has full access to the TFS libraries meaning you can get quite clever with it all ;-)

I promised I'd do a webcast after AuTechEd on this, watch this space after SPC09!

As a newer answer, we're using Visual Studio test lab management to spin up Hyper-V snapshots. Once they're up, the system is installed/upgraded using a custom deployment application launched from TFS Build.

We haven't got automated tests working against the deployed system quite yet, but that's the general plan.