I have been a long time and fan and user of JetBrain's ReSharper add-in for Visual Studio .NET. At a high-level, ReSharper is a productivity and refactoring plug-in for Visual Studio, but that simple description belies the genius behind the product.
As a TDD advocate and practitioner, I have found ReSharper to be absolutely indispensable in writing tests, writing the implementation, getting the tests to pass, and then refactoring. The "Red -> Green -> Refactor" rhythm is essential to writing testable, robust, and correct code the first time. My experience with ReSharper 2.0 and NUnit has led me to a surprising productivity boost by shortening the feedback loop between constructing a test, implementing the minimal amount of no-fluff code to make it pass, and then refactoring the code as/if necessary.
Out of the box, ReSharper 2.0 offers unit testing support for NUnit test fixtures (future plans include MBUnit and possibly Team System fixtures). ReSharper brings enhanced IDE integration through a tool window that lists all of your tests in the familiar NUnit tree view:
But wait! There's more!
Inside your unit test fixtures, ReSharper adds some icons to the left of your code window to run either a particular test or all tests within the current fixture.
For example, it's easy to run all the unit tests in a particular fixture:
Or you can easily run tests at the individual method level:
From this context menu, at an individual test method level, you can run a unit test directly without navigating to the Unit Test Runner tool window. In addition, you can choose to run JetBrain's DotTrace code profiler against the particular test. (I won't bother to comment on the easy to access "Debug" option, as it may lead to Test Driven Debugging…).
From my experience, ReSharper has been a great boost to my personal productivity. The only downsides for me have been the slow loading times (due to parsing of all the projects and referenced assemblies in your solution) and some minor stability issues for some of the post-2.0 preview builds (build 257 seems relatively stable so far).
One of the most important things to consider when adopting a new tool or technique is how "friction-less" it fits into the way you develop your code. ReSharper has been great in this particular aspect, in addition to having some great(!) code generation features, such as the ability to generate new classes and methods as you write your unit tests:
Also helpful, too, is the ability to quickly navigate between code files spread out across many projects in larger solutions with CTRL-SHIFT-N:
And also the ability to quickly navigate to variable/method/class declarations with CTRL-Click (ReSharper highlights the current text under your mouse when you hold CTRL):
If you're a keyboard/shortcuts junkie, if TDD drives everything you do, and if you're looking for a way to take the drudgery out of writing code, you may be interested in giving ReSharper a spin.
You can download the "released" version from this URL http://www.jetbrains.com/resharper/
And you can download the latest EAP preview build (currently 257) from http://www.jetbrains.net/confluence/display/ReShar…
Finally, if you're interested learning more about Test Driven Development, Mock objects, and more, be sure to check out Jeremy's most excellent post Best of the Shade Tree Developer.