closed as not constructive by Mark Trapp Dec 5 '11 at 3:44

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

Sorry, I meant most powerful, stable and intuitive, whatever. I'm asking for opinions and reasons why. I left 'best' to the answerer's imagination because I would also like to see which of those aspects are important to people.
–
rmxFeb 16 '11 at 11:42

"best" is a dumb thing to ask - because there is very rarely a single best partly because it will depend on context and partly because it is inevitably to some degree subjective.
–
MurphFeb 16 '11 at 12:44

9

Murph. First, this site is for subjective questions. Second I'm asking for opinions so I'd like to see others' interpretation of 'best'. And don't call me dumb.
–
rmxFeb 16 '11 at 13:15

4 Answers
4

I've started to use Gallio/MbUnit several years ago. And the features and gems it provides are just so powerful that I've never regretted my choice. In fact, I'm now part of the development team of the Gallio OSS project; so I can contribute to make it even more awesome.

Gallio provides a consistent platform to run all my tests with a nice reporting tooling. I'm also fond of the fact that I can integrate tests from other OSS projects which do not use MbUnit and just run them along. Seamless integration within many 3rd party tools is also convenient (R#, PoSh, dotCover, etc.) And the extensibility of the infrastructure is amazing (for example, I've just finished to write a test adapter for a native unmanaged C++ testing framework. It will be part of a future release soon)

The wiki is certainly a good starting point to discover Gallio and MbUnit v3. It sill misses some chapters but it's quiet useful already.

Have they fixed the performance problems they were having with Gallio and visual studio? Was the deal killer for us.
–
Wyatt BarnettFeb 16 '11 at 17:00

I used MbUnit when I worked for a small company and it was great! I later used MsTest because I had to, and it worked out ok. I still prefer writing explicit code over configuring project settings. The corporate backing does help MSTest though. Whether the design is ugly or beautiful, you know that whatever comes out of MSFT will be well tested.
–
JobDec 5 '11 at 3:27

@YannTrevin What's the status of Gallio/MbUnit? I looked at the Google Code repository and it doesn't seem to have any recent changes. Is development happening somewhere else or is the project stalled?
–
Wesley WiserJul 17 '13 at 14:14

MSTest

I personally use MSTest. NUnit is really nice, but in VS2010, MSTest is already fully integrated into the IDE and there are full project templates for it. For .NET, if you're using 2010, then I think MSTest is the way to go (MSTest in VS2008 I don't think is up to par) simply for the code coverage, test runner and other tools that are available to you out of the box. (If you use CodeRush or R#, then they have really great test runners/tools for other testing frameworks)

I voted up for both MbUnit/Galio and this answer. MbUnit/Galio is simply better, but their hands are tied when it comes to running MsTest tests, for some critical classes in that .Net library are final and not extendable. However, if you have to do GUI automation, then Coded UI and cuite.codeplex.com/documentation work on top of MsTest, so one just HAS to use them.
–
JobDec 5 '11 at 3:24

1

The issue I have with MSTest is that it does not natively support command line testing, this can be an issue when you want to run units via CI.
–
CmdrTallenJan 20 '14 at 14:20

Personally I would choose NUnit for a few reasons. First and foremost is tooling support. There is a free add-in for Visual Studio 2010, and all major 3rd party plugins support it. Every single build system, test coverage utility and CI server supports it. In many cases without a plugin. On the code level, it can handle just about any scenario at this point -- data driven tests, inheritance, abstract test classes, generic test classes, setup, tear down, etc. To some extent we have xUnit because NUnit got too feature rich and powerful.

Beyond NUnit, I think you could make a pretty decent argument for MBUnit + Gallio as mentioned by Yann -- it is a very solid framework. The one you should avoid if at all possible would be MSTest, which has a few fatal flaws IMHO. Flaws being some of the constraints on your test classes, such as no inheritance, and dependencies on professional or better visual studio SKUs. Including requiring visual studio be installed on the build server in order to run the tests.