views:

696

answers:

3

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.

+2  A: 

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.

Ty
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 Rudolph
@Johannes Rudolph If a CI server is overkill, you could still have build scripts. Rake is really easy to set up and run from the command line whenever you would want metrics. Here is the resource I started with for Rake. http://www.tobinharris.com/past/2008/11/4/getting-started-with-rake-on-net/
Ty
A: 

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.

mlk
check out infinitest then
Sebastian
+6  A: 

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).

To enable this configuration go to Icarus->Options->Test Explorer. Check 'Always reload files' and 'Run tests after reload'.

Josh Buedel
Yes i do also Digg that. Alas my question wether td.Net provides any benefit.
Johannes Rudolph