【发布时间】:2016-03-17 04:39:09
【问题描述】:
当我尝试调试单元测试时,我收到以下异常消息:
UnitTestIsolation 检测未能初始化。请重新启动 Visual Studio 并重新运行此测试
有了这个堆栈跟踪:
在 Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider() 在 Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext() 在 Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create() 在 Sample.Business.Tester.ProcessorManagerTest.Test_first_run_ever() 在 d:\Folder1\Sample.Business.Tester\ProcessorManagerTest.cs:第 62 行
代码是:
var prc = new ProcessorManager(ProcessRepository,ProcessStatusRepository);
using (ShimsContext.Create())
{
ShimDateTime.NowGet = () => new DateTime(2015, 10, 1);
prc.Run();
}
在ShimsContext.Create() 处抛出异常。
我查看了Visual Studio 2012 fakes UnitTestIsolation instrumentation failed to initialize,并尝试了那里的所有步骤,但对我不起作用。我没有使用 Nunit。
【问题讨论】:
-
什么是“处理器管理器”?
-
@doobop hi,这是我自己创建的自定义类,之后出现错误
-
当我尝试重现它时,它按预期工作(我使用的是 VS 2013 和 .NET 4.6)。我无法轻松回到 2012 年和 .NET 4.0,所以我没有明确尝试过。如果您注释掉ProcessorManager,它仍然会失败吗?如果你存根构造函数和/或运行呢?你可以包括构造函数吗?有时,自定义类中的某些内容会导致以后的调用失败。
-
@doobop 感谢您的评论,它在 VS2013 上也可以正常工作,问题出在 VS2012 中,我无法迁移它,因为我们有一个 2012 Server Builder 并且不会改变呢。
标签: unit-testing visual-studio-2012 .net-4.0 microsoft-fakes shim