I think NUnit is your best bet. With TestDriven.NET, you get great integration within Visual Studio. (ReSharper also has a unit test runner if you're using it). NUnit is simple to use and follows an established paradigm. You'll also find plenty of projects, tutorials, and guides using it which always helps.

Your other main choice is probably MbUnit, which is more and more positioning itself as the BDD framework of choice (in conjunction with Gallio).


Scott Hanselman had a good podcast about this, entitled:

"The Past, Present and Future of .NET Unit Testing Frameworks"

:

Hanselminutes #112


Visual Studio 2008 has a built-in test project type that works in a similar way to NUnit, but obviously has much tighter integration with Visual Studio (can run on every build and shows the results in a similar way to the conversion results page when upgrading solution files), but it is obviously not as mature as NUnit as it's pretty new and I'm not sure about how it handles mocking.

But it would be worth looking into when your team moves to Visual Studio 2008.


The built-in unit testing in Visual Studio 2008 is all right, but its difficult to integrate with CruiseControl.NET, certainly a lot harder than normal NUnit.

So go with NUnit if you plan to have nice automated tests.


We've been using xUnit.net. It seems to combine all the best of NUnit, MbUnit, and MSTest.