从命令行对Visual Studio 2012本地c++测试运行mstest

Running mstest from command line against Visual Studio 2012 native C++ tests

本文关键字:c++ 测试运行 mstest 2012本地 Studio 命令行 Visual      更新时间:2023-10-16

我有一个Visual Studio 2012解决方案与一些本地c++测试项目。我可以使用Test Explorer选项卡从Visual Studio 2012中正确成功地运行所有这些。

但是,从命令行运行时无法使测试运行。

在文档之后,我运行了以下命令行

mstest /testcontainer:PathToTestProjectWin32Releasetestproject.dll

我还需要运行

mstest /testcontainer:PathToTestProjectx64Releasetestproject.dll

用于测试64位版本的代码。

当我运行这些命令行时,我得到以下错误消息:

Microsoft (R)测试执行命令行工具版本11.0.50727.1版权(c)微软公司。版权所有

加载PathToTestProject Win32 testproject.dll释放……PathToTestProject Win32 testproject.dll发布无法加载测试容器PathToTestProjectWin32Releasetestproject.dll'或其依赖项之一。如果将测试项目程序集构建为64位程序集,则无法加载它。当您构建测试项目程序集时,为平台选择"Any CPU"。若要在64位处理器上以64位模式运行测试,必须更改"主机"选项卡中的测试设置,以便在32位进程中运行测试。错误详细信息:无法加载文件或程序集'file:///c:PathToTestProjectWin32Releasetestproject.dll'或其依赖项之一。该模块应该包含程序集清单。

代码是本地c++,有两个构建配置,一个在Win32平台上,另一个在x64平台上。我不能有AnyCPU平台配置。为了能够从命令行运行测试,我在这里缺少什么?

经过大量的搜索,我终于发现了一个非常隐藏的msdn文档页面这里说明了mstest与不同测试项目类型的兼容性。事实证明,mstest与本机单元测试不兼容(msdn很好地在一个容易找到的位置记录了这一点)。相反,您需要使用visual studio测试运行(vest .console.exe)来代替本机单元测试项目的msbuild。

例如

vstest.console.exe /Platform:x64 PathToTestProjectx64Releasetestproject.dll