繁体   English   中英

从Visual Studio 2012本机C ++测试的命令行运行mstest

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

我有一个Visual Studio 2012解决方案,其中包含许多本机c ++测试项目。 我可以使用“测试资源管理器”选项卡在Visual Studio 2012中正确且成功地运行所有这些。

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

根据文档,我一直在运行以下命令行

mstest /testcontainer:PathToTestProject\Win32\Release\testproject.dll

我也需要跑

mstest /testcontainer:PathToTestProject\x64\Release\testproject.dll

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

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

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

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

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

经过大量的搜索,我终于发现了一个非常隐藏的msdn文档页面其中说明了mstest与不同测试项目类型的兼容性。 事实证明,mstest与本机单元测试不兼容(很好的msdn可以在一个易于查找的位置记录它)。 相反,您需要使用visual studio test running(vstest.console.exe)而不是msbuild来进行本机单元测试项目。

例如

vstest.console.exe /Platform:x64 PathToTestProject\x64\Release\testproject.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM