當我試圖調試一個單元測試,我收到下面的異常消息:UnitTestIsolationException:調試單元測試在ShimsContext.Create
UnitTestIsolation儀器初始化失敗。請重新啓動 Visual Studio和重新運行該測試
有了這個堆棧跟蹤:
在 Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider() 在 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:線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。
什麼是「ProcessorManager」? – doobop
@doobop嗨,這是由我創建的自定義類,之後出現錯誤 – DanielV
當我嘗試重現此操作時,它按預期工作(我正在使用VS 2013和.NET 4.6)。我無法輕鬆回到2012和.NET 4.0,所以我沒有明確地嘗試過。如果您註銷ProcessorManager,它仍會失敗嗎?如果你將構造函數和/或Run分出來,那麼怎麼辦?你可以包含構造函數嗎?有時它是自定義類中的某些內容導致以後的調用失敗。 – doobop