Visual Studio 2012伪造的UnitTestIsolation工具无法初始化

sjd*_*ect 8 c# testing nunit unit-testing visual-studio-2012

刚安装vs 2012更新2(http://www.microsoft.com/en-us/download/details.aspx?id=36833)所以我可以使用vs fakes/shims来测试一些难以测试的代码.当我创建假装配并且所有引用都按预期添加到单元测试项目中时,一切都编译得很好.但是在任何测试中运行以下代码......

using (ShimsContext.Create())
{
    //Doesn't matter whats in here
}
Run Code Online (Sandbox Code Playgroud)

引发以下异常......

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize.  Please restart Visual Studio and rerun this test
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪完全异常......

Test 'Abot.Tests.Unit.Core.HapHyperLinkParserTest.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks' failed: Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize. Please restart Visual Studio and rerun this test
at Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider()
at Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext()
at Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create()
Core\HyperlinkParserTest.cs(59,0): at Abot.Tests.Unit.Core.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks()
Run Code Online (Sandbox Code Playgroud)

几点说明......

  • 我正在使用visual studio 2012 premium
  • 解决方案中的所有项目都以.net 4.0为目标
  • 我正在使用nunit进行测试框架
  • 尝试通过testdriven.net插件和nunit gui运行测试,但同样的错误.
  • 尝试瞄准.net 4.5并得到相同的错误
  • 我没有使用Typemock或Ncrunch而且没有安装它们
  • 我正在使用Moq但是将其删除了
  • 它没有绑定到特定的测试,我已经验证它在不同的测试文件和其他解决方案中都失败了.

sjd*_*ect 9

马修是对的.你必须使用vs test runner.

- 必须通过扩展管理器安装NUnit测试适配器0.94,这允许vs测试运行器运行nunit.

- 必须使用vs test explorer窗口来运行测试.

看起来测试运行在上下文中包装正在运行的测试以使假货发生魔术.