UnitTestIsolationException:ShimsContext.Create

时间:2015-12-11 09:56:51

标签: unit-testing visual-studio-2012 .net-4.0 microsoft-fakes shim

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

  

UnitTestIsolation检测无法初始化。请重启   Visual Studio并重新运行此测试

使用此堆栈跟踪:

  

在   Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider()   在   Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext()   在Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create()at   Sample.Business.Tester.ProcessorManagerTest.Test_first_run_ever()in   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。

2 个答案:

答案 0 :(得分:2)

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

  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
  4. 来自以下源路径:C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies

    1. 右键单击" System.dll"并在上下文菜单中选择"添加假装配"。
    2. 清理项目。
    3. 构建项目。

答案 1 :(得分:1)

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