【问题标题】:UnitTestIsolationException: Debug Unit Test at ShimsContext.CreateUnitTestIsolationException:在 ShimsContext.Create 调试单元测试
【发布时间】: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


【解决方案1】:

如果您的单元测试项目存在与假货或垫片有关的问题,请执行以下操作:

  1. 在引用中,删除这些 dll:
    • Microsoft.QualityTools.Testing.Fakes
    • Microsoft.VisualStudio.QualityTools.UnitTestFramework
    • System.4.0.0.0.Fakes
    • mscorlib.4.0.0.0.Fakes
  2. 同样在“Fakes”文件夹中,删除这些文件:
    • mscorlib.fakes
    • System.fakes
  3. 添加 dll:
    • Microsoft.QualityTools.Testing.Fakes
    • Microsoft.VisualStudio.QualityTools.UnitTestFramework

来自以下源路径:C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies

  1. 右键单击“System.dll”并在上下文菜单中选择“添加假程序集”。
  2. 清理项目。
  3. 构建项目。

【讨论】:

  • 难以置信,我之前也按照相同的步骤操作过,但不记得了,但这确实解决了问题。
【解决方案2】:

这里有类似的错误。可以通过使用“Visual Studio 安装程序”修复 VS 安装来解决。 VS 企业版 2017 版本 15.6.6

【讨论】:

    猜你喜欢
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多