What are the differences between using a VS integrated tool like Testdriven.net or using a GUI test runner like Icarus or NUnit GUI?

What do you prefer and why?

So far i've found that reports are better in Icarus than in td.net, which only features a commandline output.
However td.net is faster to use, i can execute single tests more easily without having to uncheck the rest first. NCover integration is very nice also.

3 Answers
3

Icarus has one great feature that keeps me using it. It is the automatic reload and rerun of tests.

I keep Icarus hovering over on the left hand monitor. Each time I build in Visual Studio, Icarus reloads the assemblies and runs all the tests. It's sort of like the instant feedback of Resharper's Solution Analysis, except for tests instead of syntax. Running the tests is automatic and doesn't seem to affect the performance of Visual Studio (likely b/c Icarus is it's own process, not hosted inside the IDE).

In defense of TD.Net, build runs as part of running unit tests, in place, and without taking up screen real-estate.
–
GregCApr 13 '11 at 16:09

What would be really cool is a feature to re-run relevant unit tests as you edit code in Visual Studio. But then how do you define "relevant?"
–
GregCApr 13 '11 at 16:10

This is an old question but since I found it looking for a good test runner integrated with Visual Studio, it's worth mentioning NCrunch does exactly what GregC says: "re-run RELEVANT unit tests as you edit code in VisualStudio"
–
Rodolfo GraveFeb 8 '12 at 12:24

Do you have a Continuous Integration server (like a build server, but runs unit tests)?

If so, you can set up gallio to run your unit tests and have all the reporting information there while allowing the developers to use something with faster feedback while they are working.

If there is no option, I prefer something that is integrated into the IDE like Testdrvien. The immediate feedback is really helpful when refactoring a piece of code or developing something new under TDD. Besides, if you don't have the sanity checking going on at a single point (like a CI server), you are going to want as many eyes as you can find on those unit tests. Developers tend to use whatever is easiest and, generally, an integrated test suite is easier than a separate component.

i am an individual developer, so using a ci server is not nescessary for me. Actually i do have one, hovewer im just using it for metrics and the like (and for fun of course)
–
Johannes RudolphSep 1 '09 at 14:59

As a Java developer I rarely use external applications to handle the running of unit tests and when I do I find it rather odd¹. To me unit tests should be ran frequently and as such you should need very few actions to execute them (ideally none but I have yet to see an incremental jUnit runner ;) ). Switching out to a different application puts extra steps in the way of testing your code.

¹ Excluding CI servers and the like. But that is not me running the test.