为WinRT自动执行C ++单元测试

时间:2012-04-18 18:25:44

标签: unit-testing visual-c++ mstest windows-runtime

由于无头地运行Metro应用程序仍然是一个灰色区域:Running a metro app headlessly,我最近决定在我的Windows Metro应用程序中添加一个本机单元测试项目,希望我能找到运行这些单元测试的方法在构建服务器上以自动方式。基本上,我正在寻找类似于MSTest.exe的东西 - 一个非常适合从批处理文件和/或脚本运行测试的实用程序。

事实上,我已尝试在生成的测试.dll上使用VS11附带的新版MSTest.exe,但它失败并显示错误:

“无法加载测试容器'test.dll'或其依赖项之一...错误详细信息:无法加载文件或程序集文件://test.dll'或其依赖项之一。模块预计包含一个程序集清单。“

MSTest.exe是否适用于包含WinRT代码的测试容器?如果没有,是否有一个可以做我想做的实用工具?


编辑:我刚发现MSTest不支持在Metro风格应用上运行测试。在这里找到:http://msdn.microsoft.com/en-us/library/ms253138%28v=vs.110%29.aspx这真的太糟糕了。我仍然希望那里有一个实用工具。

3 个答案:

答案 0 :(得分:3)

在盲目地浏览VS文件夹后,我碰巧找到了一个新的测试运行器:

  

C:\ Program Files \ Microsoft Visual Studio   11.0 \ Common7 \ IDE \ CommonExtensions \微软\ TestWindow \ vstest.console.exe

该实用程序允许您从命令行执行WinRT单元测试。它与MSTest.exe非常相似。

目前似乎还没有任何文档可用,但至少存在一个帮助命令。

答案 1 :(得分:1)

如果您正在执行vstest.console.exe< filename> .dll,那么您的测试不会在appcontainer模式下执行。您需要提供< filename> .appx以在appcontainer模式下执行测试。有关如何从命令行执行Windows Metro风格应用程序测试的更多信息,请访问Running Unit Tests for Windows Metro style apps from Command Line

答案 2 :(得分:0)

有关于(除其他事项外)运行Windows Phone的单元测试的文档: http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn168930(v=vs.105).aspx

它还描述了使用vstest.console.exe执行此操作的命令行方式。

它还对Windows Phone和WinRT的单元测试之间支持的功能进行了比较。

一个重要的细节是WinRT的单元测试无法在设备上运行。这是一个遗憾,与问题How to automate non-interactive tests on Microsoft Surface

相关