【问题标题】:Automating C++ unit test runs for WinRT为 WinRT 自动运行 C++ 单元测试
【发布时间】:2014-03-03 22:10:22
【问题描述】:

由于无头运行 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 这真的太糟糕了。我仍然希望有一个实用程序可以工作。

【问题讨论】:

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


    【解决方案1】:

    一味翻遍VS文件夹后,正好在下面找到了一个新的test runner:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        有一个关于(除其他外)为 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

        【讨论】:

          猜你喜欢
          • 2015-06-25
          • 1970-01-01
          • 2020-08-13
          • 2011-03-29
          • 2011-05-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-13
          相关资源
          最近更新 更多