I have used both NUnit and MSTest. Yes, there are differences. NUnit is an older, more established unit testing framework designed to do exactly one thing - unit testing. MSTest is newer so it does not have the same level of maturity in its API. For example, NUnit offers more Assert methods than MSTest. (See http://geekswithblogs.net/sdorman/archive/2009/01/31/migrating-from-nunit-to-mstest.aspx for more information. To add some of the missing Assert methods, see http://geekswithblogs.net/sdorman/archive/2009/01/31/adding-custom-assertions-to-mstest.aspx).
I have not really found performance to be an issue with either framework.
Some of the bigger differences are:
- MSTest requires a Visual Studio instance on the build server in order to run. It does not contain a standalone test runner like NUnit.
- MSTest provides test results and code coverage results directly within Visual Studio. NUnit provides test results in its own UI and requires additional tools to perform code coverage analysis.