UnitTestIsolationException:调试单元测试 ShimsContext.Create

UnitTestIsolationException: Debug Unit Test at ShimsContext.Create

当我尝试调试单元测试时,收到以下异常消息:

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() at Sample.Business.Tester.ProcessorManagerTest.Test_first_run_ever() in d:\Folder1\Sample.Business.Tester\ProcessorManagerTest.cs:line 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。

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

  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" 并在上下文菜单中选择 "Add fake assembly"。
  2. 清理项目。
  3. 构建项目。

此处出现类似错误。可以通过使用 "Visual Studio Installer" 修复 VS 安装来解决。 VS Enterprise 2017 版本 15.6.6