0

ソリューションを Visual Studio 2012 (以前のバージョンは Visual Studio 2010) に変換した後、ソリューションで単体テストを実行しようとしました。単一のテストを実行する前にテストランナーがクラッシュするようになりました。かなり一般的なエラー メッセージが表示されます。Visual Studio のデバッグを選択すると、次のスタック トレースが表示されます。

Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.AssemblyKeyExtractor.ExtractPublicKeyFromKeyFile(string keyFile, out bool isPublicKey)
[Managed to Native Transition]
Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.PublicKeyHolder.this[string].get(string file)
Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.DeploymentHelper.GetPublicKey(string keyFile, Microsoft.VisualStudio.TestTools.TestManagement.PublicKeyHolder publicKeyHolder)
Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.DeploymentHelper.ProcessCodeCoverageItemsForDeployment(System.Collections.Generic.List<Microsoft.VisualStudio.TestTools.TestManagement.DeploymentCoverageItem> deploymentCoverageItems)
Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.DeploymentManager.DoDeployment(Microsoft.VisualStudio.TestTools.Common.TestRun run, Microsoft.VisualStudio.TestTools.Common.FileCopyService fileCopyService)
Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.ControllerProxy.SetupTestRun(Microsoft.VisualStudio.TestTools.Common.TestRun run, bool isNewTestRun, Microsoft.VisualStudio.TestTools.Common.FileCopyService fileCopyService, Microsoft.VisualStudio.TestTools.TestManagement.DeploymentManager deploymentManager)
Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.ControllerProxy.SetupRunAndListener(Microsoft.VisualStudio.TestTools.Common.TestRun run, Microsoft.VisualStudio.TestTools.Common.FileCopyService fileCopyService, Microsoft.VisualStudio.TestTools.TestManagement.DeploymentManager deploymentManager)
Microsoft.VisualStudio.QualityTools.TMI.dll!Microsoft.VisualStudio.TestTools.TestManagement.ControllerProxy.QueueTestRunWorker(object state)
mscorlib.dll!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(object state)
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch()
mscorlib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
[Native to Managed Transition]

スタック トレースは、署名されたアセンブリをテストしているという事実がエラーを引き起こす可能性があることを示唆しています。

4

1 に答える 1

0

いくつか実験した結果、テスト実行構成ファイルでテスト実行のコード カバレッジを無効にすることで、この問題を解決できることがわかりました。これを行うには、LocalTestRun.testrunco​​nfig ファイル (ソリューション項目の下にあります) -> [データと診断] を開き、[コード カバレッジ (Visual Studio 2010)] を無効にします。

于 2013-03-13T14:02:14.923 に答える