这是我在构建我的测试项目时得到的:
有了这个,我无法运行我的测试,因为它们没有被 VS 发现。
"Unexpected error detected. Check the Tests Output Pane for details."请参阅窗口底部的消息。现在,如果您查看“测试输出”窗格,您将不知道问题出在哪里。这非常有帮助… :)
"Unexpected error detected. Check the Tests Output Pane for details."
我知道 VS 11 处于测试阶段,但它曾经可以工作......
我已经重新启动了 VS,但之后它也没有工作。
关于发生了什么的任何想法?它会是某个地方的错误吗?
注意:我唯一能想到的与我前一段时间所做的 VS 2010 卸载有关。也许它卸载了一些必要的位。打败我…
编辑 1 我刚刚对 VS 11 Beta Ultimate 进行了修复。它要求重新启动计算机一次,我做到了。然后它继续修复,但持续工作了12个多小时。我刚刚杀死了修复过程。
与此同时,我卸载了 Visual Studio 11 Express for Web。我将它与 VS 11 Beta Ultimate 放在一起。
够疯狂的是,在我做了这两件事之后它又开始工作了。所以我不确定是什么解决了这个问题:被杀死的修复过程或 VS 11 Express for Web 的卸载。
编辑 2 令我失望的是,我现在看到这是断断续续的事情。重新启动 VS 11 Ultimate Beta 后,问题仍然存在。:(
编辑 3 我在 Microsoft 填写了Connect 票,但他们将其关闭为不可复制。
我使用 VS 11 Ultimate Beta 修复选项进行了第二次尝试,这次它按预期完成。为了隔离问题,我在新解决方案中创建了一个带有默认UnitTest1.cs文件的全新测试项目,在构建它之后,我得到了与上图相同的错误屏幕。所以修复选项并没有解决问题。看起来我的系统中缺少某些东西。
UnitTest1.cs
这是来自 VS About 窗口的信息:
Microsoft Visual Studio 11 Version 11.0.50323.1 QRELB Microsoft .NET Framework Version 4.5.50131 QRELB Installed Version: Ultimate
编辑 4我在这里 发现了一个类似的问题,但那里给出的解决方案不适用于我的情况,因为我没有描述的 DLL。
编辑 5 在Aseem Bansal(微软员工)的帮助下,我终于得到了日志并看到了这个异常:
W, 2124, 19, 2012/04/19, 11:51:32.644, 53768626724, devenv.exe, Exception occured while initialization System.InvalidOperationException: Cannot start process because a file name has not been provided. at System.Diagnostics.Process.Start() at Microsoft.VisualStudio.TestPlatform.Core.Utilities.CommonUtilities.LaunchProcess(String exeFileName, String commandLineArguments, String workingDirectory, IDictionary`2 environmentVariables) at Microsoft.VisualStudio.TestPlatform.Client.TestRunnerServiceClient.SetupProcess(Boolean forceX86Discoverer) at Microsoft.VisualStudio.TestPlatform.Client.TestRunnerServiceClient.Initialize_NoLock(Boolean forceX86Discoverer) at Microsoft.VisualStudio.TestPlatform.Client.TestRunnerServiceClient.EnsureInitialized(Boolean forceX86Discoverer) at Microsoft.VisualStudio.TestPlatform.Client.TestRunnerServiceClient.EnsureInitialized_NoError(Boolean forceDiscoveryInX86Mode)
编辑 6 我尝试使用mstest.exe命令行工具(有和没有/noisolation选项)执行测试。测试按预期运行,如下所示。所以问题出在 VS 11 Beta 内部。
mstest.exe
/noisolation
请确保Microsoft.VisualStudio.TestPlatform.Core.dll从其安装位置%VSInstallDir%\Commmon7\IDE\CommonExtensions\Microsoft\TestWindow路径加载,而不是从%appData%\assembly\dl3\您现在观察的临时路径加载。这应该可以为您解决问题。
Microsoft.VisualStudio.TestPlatform.Core.dll
%VSInstallDir%\Commmon7\IDE\CommonExtensions\Microsoft\TestWindow
%appData%\assembly\dl3\
我还想告诉你,在最新的代码中,我们改进了我们的逻辑,并且通过改进的逻辑,从哪里加载二进制文件并不重要,它只会为你工作。