Thursday, August 11, 2011

MSTest vs NUnit [Unit testing frameworks]

Googled a bit to get the exact differences between MSTest and NUnit, and compiled everything in a table. Thought others could benefit too :)

Let me know if you do not agree with anything here:



MSTest

NUnit

Running
Test cases on Build/Test Server


*
Standalone
installer for MSTest is not available. This means
VS2008 has to be installed on the Build/Test Server.

[A
workaround exists which requires manually copying mstest.exe, related dlls and registry settings: http://www.shunra.com/shunrablog/index.php/2009/04/23/running-mstest-without-visual-studio/.



*
NUnit provides a standalone application for running
Unit tests which can be separately installed on the Build/test server. This
also has a UI for choosing Unit Test to run.



64
bit application support

*

MSTest does not support running of 64 bit
applications dlls and exes



*
NUnit provides support for 64 bit application dlls and exes


Integration
with Visual Studio IDE


*
Automatically
integrated with Visual Studio IDE.



*
NUnit can be integrated with VS to a little extent
manually



For
full integration, we will have to install non-free tools like ReSharper or TestDriven.NET to integrate with Visual
Studio.



Code
Coverage

*

Code
coverage reports are automatically generated without the need for another
tool.

*
NCover (which is free) should be used to get Code
coverage reports.


API
ease of use and Documentation on the internet

*

MSTest API is relatively new and takes a little
getting used to. Also, help topics on the internet are less when compared to NUnit.





*
NUnit is a tried and tested Unit testing tool, the
API is friendly, and lot of documentation is available on the internet.

Speed
Some people have said that MSTest is slower when
compared to NUnit.

[The
information is not conclusive]