+5  A: 

Take a look at a webinar I did a few weeks ago - How To Start Unit Testing Successfully. In that webinar I've talked about tools and unit testing best practices and it was aimed at developers just like you who want to introduce unit testing in their organization.

First order of business you want to put a CI (Continuous Integration) process in place and for that you'll need three tools:

  1. Source control
  2. Build server
  3. Build client/script

I hope you already have some form of source control in place so let's talk about the other two.

Build Server - checks the source control and when it changes (or some other condition met) runs a build script on some client (or same machine) there are several build server available I recommend JetBrain's TeamCity it's easy to install and use (great web interface) and is free for up to 20 developers (that's you).

Build Script - on your build client you want to run a build script that would build your solution and run your unit tests. TeamCity has some basic build & test capabilities but for more advanced options (build installer, documentation etc.) you'll need some script runner at work we use FinalBuilder - it's not free but has very good editor. If you're looking for a free alternative have a look at ANT or NANT - but be prepared to edit a lot of XML.

Other tools - Because an important part of successful unit testing is how easy it is to write and run tests on the developer's machines I suggest you check if there are better IDE's or external tools that would help the developers write & run their unit tests.

Dror Helper
+1 for TeamCity. We started with CruiseControl.NET and switched to TeamCity because it was so much easier to administer. NAnt scripts are pretty easy to edit, but you don't need to do much of it with TeamCity.
TrueWill
Thanks so much for the information. I edited my original post to note that we use VSS. Although i hate VSS =). I'm hoping to get subversion setup so we can finaly get rid of that buggy VSS. I do have a question though - do you use your build server to compile your own local builds as you develop? Or is it only for deployment builds?
dferraro
I do run the build script on my local machine but usually VS is enough for building and testing my project
Dror Helper
Have you ever used VSS as part of your infrastructure? The thing's a buggy POS that I've hated (lol). I want us to move to Subversion/VisualSVNServer/VisualSVN anyway. But I'm trying to decide if we should take on the source control move first before anything, or can it come after?...or will the former wind up causing problems because SS is tightly coupled with the tools mentioned above? Does VSS play well with the tools mentioned abovethese tools? I'm assuming there must be at least minor issues - hell; it doesn't even play wel with Visual Studio! ;)... Thanks again for the help
dferraro
First I think VSS works well enough with TeamCity and I know that it's supported by FinalBuilder. Having said that I prefer using P4 or SVN because they work better (at least for me). You can always change your source control tool later in the project but it would be a lot of pain. If you want to switch source control I suggest you do that as soon as you decide. Do a simple spike - keep VSS and try moving to a different source control and if it works dump VSS.
Dror Helper
BTW, I'm trying to watch that vid on the TypeMock site, but it doesn't render at all... not on IE or on Chrome... any idea?
dferraro
#deferro - works on my machine (chrome) try installing a new flesh player, it might help
Dror Helper
Dror - When you run your build scripts on the build client (e.g. final builder), are they running against your build server, or against a local compiler?
dferraro
Not sure what you mean, you could run the build script on your build machine but you should also have a CI (Continuous Integration) server that runs the script to make sure that it works in a non-development environment
Dror Helper