Unit testing 运行c++;在未安装visual studio的情况下使用vstest.console.exe进行单元测试

Unit testing 运行c++;在未安装visual studio的情况下使用vstest.console.exe进行单元测试,unit-testing,visual-studio-2013,Unit Testing,Visual Studio 2013,我将TestWindow文件夹(C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow)复制到未安装Visual Studio的计算机上,并尝试在x64 cpp测试dll上运行vstest.console.exe命令 vstest.console.exe tests.dll /tests:testmethod1 /platform:x64 /logge

我将TestWindow文件夹(C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow)复制到未安装Visual Studio的计算机上,并尝试在x64 cpp测试dll上运行vstest.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[]) 应用程序:vstest.discoveryengine.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程已终止。 异常信息:System.IO.FileNotFoundException 堆栈: 在Microsoft.VisualStudio.TestPlatform.TestRunnerService.DataCollectors.DataCollectionPluginManager..ctor()上 位于Microsoft.VisualStudio.TestPlatform.TestRunnerService.WcfTestRunnerService..ctor(System.Threading.ManualResetEvent) 位于Microsoft.VisualStudio.TestPlatform.TestRunnerService.TestRunnerServiceHost.CreateServiceHost(System.String、System.Threading.ManualResetEvent) 在Microsoft.VisualStudio.TestPlatform.TestRunnerService.ServiceMain.Main(System.String[])上
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\GACmsil
中找到

我还注意到,如果我从
vstest.console
命令中删除了
/tests
开关,则不需要这些额外的DLL

也将下列DLL复制到TestWindows文件夹(以说明目标机器没有VisualC++运行时)


除了拥有TestWindow文件夹和前面提到的GAC程序集(确保您拥有与Visual Studio版本相匹配的GAC程序集版本)以及VSC++程序集(如果需要),我还需要确保安装了最新版本的.NET Framework。我正在使用VS 2012 vstest.console.exe,并且在安装.NET Framework 4.5.2 Windows Update后能够运行“帮助”菜单。

我找到了一个简单的解决方案:只需在服务器上安装即可

(在这种情况下,无需复制/通过TestWindow文件夹。)

 - C:\Windows\System32\msvcr120.dll
 - C:\Windows\System32\msvcp120.dll