Unit testing for .NET gets even easier
Free (registration required
I've written at length about the benefits of unit testing and test-driven
development in the past, so I'll try not to repeat myself here. Basically, the
idea is that you should write a test for every bit of functionality in your
application, and exercise these tests as you go along to make sure that you
didn't break anything. Proper use of these techniques can lead to increased
confidence and fewer errors in your code.
The last few times I've looked at unit testing tools for .NET, they've all
run as external processes. Using reflection, these tools can look into a .NET
assembly and ferret out all of the test classes and methods (marked by special
attributes), run them, and report on the results. But TestDriven.NET breaks this
mold by actually running inside of Visual Studio .NET. Running a unit
test is as simple as right-clicking and choosing "Run Test(s)". By implementing
this choice on every level from the solution down to individual methods,
TestDriven.NET lets you choose precisely which tests to run at any given
TestDriven.NET also doesn't try to reinvent the wheel, or in this case, the
unit testing framework. Instead, it works with a number of popular frameworks:
NUnit, MbUnit, and even (for
those of you brave enough to run the Visual Studio 2005 beta) Microsoft Team
System. It even comes bundled with a copy of MbUnit so you don't have to
download and install additional software to get going.
If all the tests succeed, you get a line of output in the IDE and keep going.
If anything fails, you still get the full output in the IDE, but you also get a
task in the task list telling you to fix the darned thing. Of course,
double-clicking the task takes you straight to the failing line of test code.
TestDriven.NET also adds some additional flexibility to testing. One nice touch
is that you can use the debugger to run tests, which provides an easy solution
for stepping into test code - something that's a nuisance with an external
Overall, TestDriven.NET makes unit testing just a tiny bit easier - which of
course makes it a tiny bit more likely to happen. I miss the nice
red/yellow/green display of the external tools, but overall this is a big
improvement. I'd rate this one of the best freeware .NET applications for
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.