Thursday, July 3, 2008

MS test... why?

*I am talking about MS test and Vs 2005... i havenot used 2008 so cant comment*
I really am struggling to see the benefits of MS test suite over the OSS equivalents. NUnit which is as old as the hills has been my right hand man for a couple of years now, I have dabbled in MBUnit and ashamedly have not even used xUnit for even one project (now on the to do list!). Unfortunately these have only been on my solo or PoC projects. As i work in .Net companies the fixation of TFS and the MS suite of tools linger.. no matter what country you are in.
The ease of use of some thing like NUnit compared to MS test is not at first apparent then you use both of them...
Both integrate with TD.Net and ReSharper... and i think that's where they stop. If you don't use either of those tools (you should if you are attempting to be TDD) then MS test may appear to be less friction as you can run the test from within VS. This is an illusion!
I personally think the NUnit test GUI is faster and nicer to use as i can see everything at a glance and my whole solution is not required to be rebuilt very time i want to run a test (Arrrrrgggh!)
Take for example the graphical representation of your tests:
Firstly NUnit Gui:

versus the test view in VS

The test view in VS only really tells me that I have tests. Well, I know that because I wrote them, where are my test failing? Is it all in one namespace? One class? One category? Who knows. Sure you can filter but the intuitive aspect of the node view NUnit offers, give me the instant feedback that, to me, is worthwhile.
As most of us write more the 30 test having a window with one column showing all test is a little silly. It also shows all test for the whole solution....

Most importantly running units test as part of the build process with NUnit is trivial. I use NAnt at home and MSbuild at work. Getting NUnit to run as part of a build process was trivial.. can the same be sad for MSTest... no. Can it be done? Sure, I guess so, but I will never find out because I have better things to do then bend and mold software to fit my ridiculously simple requirements, I would rather just use the software that works as it should.

If you are using MS test I would strongly recommend rethinking that descision. I dont think you can be effectively Test Driven with that tool set so get a tool set that help you not hinders.

1 comment:

Anonymous said...

I Agree that the unit test support could be better, again what you are using is essentially a V 1.0 release, it should get better and has to some degree in 2008. For me the real benefit is the wide-range of unit tests available in the suite, you have unit test, web load tests, web UI test, and with the DataDude, you can have Stored procedure unit tests, integration tests across parts of the application, and seamless integration with MSBuild and TFS (Continuous integration).

You can get a better experience with NANT, and NUNIT, Watir, etc... however unless you have already used ALT.NET this built-in approach does save you time and energy across the board while not matching the feature sets across the divide.