title: What are the preferred options, today, for unit testing in Visual Studio 2010?
body: <p>I'm new to TDD, and am looking at options for unit testing my Visual Studio 2010 solution.  This solution is an MVC3 web app, which I'm <em>attempting</em> to use DDD with IoC, repository, and unit of work patterns.  It also uses EF4 &amp; the EF4 POCO templates.  (I tried to model much of it from the <a href="http://microsoftnlayerapp.codeplex.com/" rel="nofollow noreferrer">Microsoft N-layer App</a>, also borrowing design patterns from a couple other blogs).</p>
  
  <p>I've been searching and reading about this for a couple of hours, and it seems I'm finding conflicting information everywhere I turn.  Much of this is due to old results coming up, and evolving options for Visual Studio 2010.  </p>
  
  <p>I know there are several options, but again, I'm having a hard time discerning outdated options from the newer options, and there is some ambiguity in the references people use. Even the <a href="https://stackoverflow.com/questions/261139/nunit-vs-mbunit-vs-mstest-vs-xunit-net">popular discussion</a> here has some old/ambiguious/conflicting information.</p>
  
  <p>For example:</p>
  
  <ol>
  <li><p>Is there a difference between <a href="http://en.wikipedia.org/wiki/MSTest" rel="nofollow noreferrer">MSTest</a>, <a href="http://en.wikipedia.org/wiki/Visual_Studio_Unit_Testing_Framework" rel="nofollow noreferrer">Visual Studio Unit Testing Framework</a>, and <code>Microsoft.VisualStudio.TestTools.UnitTesting</code>?  If so, what?  It seems these are different, but have been improperly referenced in some discussions I've seen.</p></li>
  <li><p>Since the author of NUnit also authored xUnit, does that mean xUnit replaces NUnit, thus rendering NUnit deprecated?  It seems that some, even today, prefer NUnit.  But if NUnit is deprecated, why would one start today using NUnit over xUnit?  If NUnit is not deprecated, does this mean xUnit isn't taking off like it was originally intended?  Why would the author continue to support two seemingly redundant tools?</p></li>
  <li><p>Which of these integrates into VS2010 without having to resort to separately executing command lines to test, or having to purchase tools like TestDriven.Net? (I do have ReSharper, though, if this supports any of these.)</p></li>
  <li><p>Have there been any notable changes recently to any of these that would make older discussions of these invalid?</p></li>
  <li><p>Are there any others I should consider over or in addition to the ones I've mention above ?</p></li>
  </ol>
  
  <p>I'm not necessarily looking for an in-depth comparison (though you're more than welcome to provide one if you'd like), but more of an up-to-date consensus of the current tools that are being used today for new VS2010 development. </p>
  
  <p>On the surface, the "Visual Studio Unit Testing Framework" seems to integrate nicely into VS2010 (Pro) out of the box, and seems to be easy to get up and running quickly, as opposed to some of the others, even if it is a bit bloated.  But since I'm new, I don't want to get into it 3 months down the road, then realize I've painted myself into a corner just because it seemed easier to pick up.</p>
  
  <p>I also know that this question may be considered a "bad" question by some, due to it's open and broad nature, but while these are different questions, I feel they're all related, and all stem from my general confusion over the ambiguous and conflicting points I'm finding about unit testing in VS2010.</p>
  
  <p>Thanks in advance.</p>
  
  <p><strong>EDIT:</strong> This is meant to be more of an updated discussion of the nearly three-year-old <a href="https://stackoverflow.com/questions/261139/nunit-vs-mbunit-vs-mstest-vs-xunit-net">popular discussion</a> I linked to above.  That discussion has some good points, but a lot of things (could) have changed in three years, and I like a more current evaluation of the subject.</p>