Hi Ed,
This is a very interesting test case, and it's an excellent example of where test ordering can be particularly useful. In similar situations, I've generally split the code between setup/teardown methods and the test methods, or implemented exception traps in stages within the test.
Xunit V2 does have the ability to run tests in a fixed sequence using TestCaseOrdererAttribute. NCrunch will also detect this attribute and will group the tests together so they aren't split between execution tasks (it will also do this with ALL MSpec test contexts/fixtures). Though as you've mentioned you're using VS2010, this probably won't be an option for you.
NUnit at this time doesn't have support for defined test execution order. To my knowledge, MSTest is the same. This means that at the moment you have 3 options:
- Redesign the tests for less granular reporting
- Upgrade to VS2013 and use Xunit V2
- Wait/hope for me to fix MbUnit test orders in NCrunch (please don't wait for this, I have no idea yet if this is actually possible)
Regarding recommended test framework, it's hard for me to really do this as all frameworks have their unique strengths. Personally, I use NUnit, but this is more because I'm a bit old-school. Many people have been moving to Xunit lately. Xunit has seen very extensive development and right now is moving towards supporting multiple platforms (very useful). NUnit V3 is also approaching soon and I expect this will be a large improvement over the original, as Charlie has been very open with the design approach for V3. MSpec is also a very clean product though its syntax does take some getting used to. NCrunch works very well with basic use of MSTest (performance is very good), though MSTest may give you trouble with other toolsets.