我将TestWindow文件夹(C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow)复制到未安装Visual Studio并尝试运行vstest的计算机上。 x64 cpp test dll上的console.exe命令。
vstest.console.exe tests.dll /tests:testmethod1 /platform:x64 /logger:console
这是我在事件日志中看到的错误。
Application: vstest.discoveryengine.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileNotFoundException Stack: at Microsoft.VisualStudio.TestPlatform.TestRunnerService.DataCollectors.DataCollectionPluginManager..ctor() at Microsoft.VisualStudio.TestPlatform.TestRunnerService.WcfTestRunnerService..ctor(System.Threading.ManualResetEvent) at Microsoft.VisualStudio.TestPlatform.TestRunnerService.TestRunnerServiceHost.CreateServiceHost(System.String, System.Threading.ManualResetEvent) at Microsoft.VisualStudio.TestPlatform.TestRunnerService.ServiceMain.Main(System.String[])
答案 0 :(得分:3)
FileNotFoundException
是由于某些必需的程序集丢失所致。我使用WinDbg发现了这些并将它们复制到TestWindow文件夹。
- Microsoft.VisualStudio.Diagnostics.Measurement.dll
- Microsoft.VisualStudio.Diagnostics.ServiceModelSink.dll
- Microsoft.VisualStudio.QualityTools.Common.dll
- Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll
- Microsoft.VisualStudio.QualityTools.Resource.dll
- Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
可以在安装了Visual Studio的计算机上的C:\windows\assembly\GAC_MSIL
找到这些程序集。
我还注意到,如果我从/tests
命令中删除vstest.console
开关,则不需要这些额外的dll。
还将以下dll复制到TestWindow文件夹(以说明目标机器没有visual c ++运行时的情况)
- C:\Windows\System32\msvcr120.dll
- C:\Windows\System32\msvcp120.dll
答案 1 :(得分:0)
除了拥有TestWindow文件夹和上述GAC程序集(确保您具有与您的Visual Studio版本匹配的GAC程序集版本)和VSC ++程序集(如果需要)之外,我还需要确保最新版本的.NET Framework安装。我正在使用VS 2012 vstest.console.exe,并且在安装.NET Framework 4.5.2 Windows Update后能够运行帮助菜单。
答案 2 :(得分:0)
我找到了一个简单的解决方案:只需在服务器上安装Visual Studio Agents即可。
(在这种情况下,无需复制/通过TestWindow文件夹。)