这是我在构建测试项目时得到的结果:
有了这个,我无法运行我的测试,因为他们没有被VS发现。
请参阅窗口底部的消息"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 ticket,但他们将其关闭为不可复制。
我使用VS 11 Ultimate Beta修复选项进行了第二次尝试,这次它按预期完成。为了隔离问题,我在新的解决方案中创建了一个带有默认UnitTest1.cs
文件的全新测试项目,在构建之后,我得到了如上所示的相同错误屏幕。因此修复选项无法解决问题。看起来我的系统中缺少某些东西。
这是VS关于窗口的信息:
Microsoft Visual Studio 11
Version 11.0.50323.1 QRELB
Microsoft .NET Framework
Version 4.5.50131 QRELB
Installed Version: Ultimate
编辑4
我发现了一个类似的问题here,但由于我没有描述DLL,因此在我的情况下给出的解决方案不适用。
编辑5
在Aseem Bansal's(微软员工)的帮助下,我终于得到了logs并看到了这个例外:
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
选项)执行测试。测试按预期运行here。所以这个问题确实存在于VS 11 Beta中。
答案 0 :(得分:3)
找到相关性:
当启用NuGet自动拉取时,我在大约~15版本之后在VS 11上遇到了这个问题。 删除Packages文件夹并强制重新获取构建更改的依赖关系。
我还注意到,如果我手动清除解决方案根目录中的obj / bin文件夹,则解决方案已得到纠正。
因此,我认为这听起来好像Test Suite没有使用当前解决方案配置更新缓存的dll。 在编辑时,dll不同步,从而导致单元测试夹具无法启动。
希望这有帮助。
答案 1 :(得分:2)
Leniel,
感谢您提出此问题。
在我们讨论here时,它表明shadow copy导致问题。
请确保Microsoft.VisualStudio.TestPlatform.Core.dll
已从其安装位置%VSInstallDir%\Commmon7\IDE\CommonExtensions\Microsoft\TestWindow
路径加载,而不是从您当前正在观察的%appData%\assembly\dl3\
等临时路径加载。这应该可以解决你的问题。
另外,我想更新一下,在最新的代码中,我们已经改进了逻辑,并且通过改进的逻辑,二进制文件的加载位置无关紧要,它只适合您。
此致
Aseem Bansal
答案 2 :(得分:1)
我有这个问题,我在@chrisortman的评论中尝试了这个建议,它解决了我的问题。
他建议删除:
%appdata%\assembly\dl3
虽然我在这里找到了:
%appdata%..\..\Local\dl3
我疯了。真的很生气。
答案 3 :(得分:0)
感谢Leniel和Aseem Bansal的帮助。
我有类似的问题,但这个帖子的解决方案对我没有帮助, 我的VS 2012 + silk4net未在测试资源管理器中加载测试。
在我从PC上删除Telerik Test Studio之前。但VS的扩展未删除。删除后,此扩展开始正常工作。 谁看到问题仍然存在,请查看扩展可能是其中的问题。
希望这有帮助。