【发布时间】:2016-06-06 12:35:54
【问题描述】:
我目前遇到以下问题:
我们通过使用 Visual Studio 2015 Microsoft::VisualStudio::CppUnitTestFramework 中包含的本机 microsoft 单元测试框架将单元测试引入我们的本机 c++ 应用程序。
要在 Visual Studio 中启动单元测试,我们使用 Test-Explorer,如图 1 所示。通过将 method attribute 添加到 Test-Method(如图 2 所示)Test-Explorer 允许排序并按属性过滤(如图 3 所示)。
所有这些都没有问题。当我们尝试将这些单元测试实施到我们的持续集成系统 (CI) 中时,我们开始遇到问题。
要从控制台启动单元测试,我们使用vstest.console.exe,它位于:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe。官方文档可以找到Here.
添加记录器并将文件输出到 .trx 也很有效。 NOT 的作用是应用过滤器来确定具有特定属性的测试。根据文档,使用/TestCaseFilter:-switch 应该可以实现类似的功能。然而,以下屏幕截图显示了由此产生的错误:
它转换为:“没有与过滤器匹配的测试,因为它包含一个或多个无效属性 (TakesLong)。指定包含有效属性 (TestCategory、Priority、FullyQualifiedName、Name) 的过滤器表达式,然后重试。 "
有人知道这个问题或知道如何解决它吗?最终目标是能够排除某些测试(需要很长时间/需要硬件加密狗等)。
最好的问候,洛托索
【问题讨论】:
-
有一篇很好的关于在 VS 中使用测试资源管理器使用 C++ 进行单元测试的文章,如果你尝试这个,你可以使用文本资源管理器来过滤你的单元测试吗?这是文档:msdn.microsoft.com/en-us/library/hh270864.aspx
-
@PedroG.Dias 是的,我可以使用测试探索器来过滤单元测试。但是,当尝试在 Visual Studio 之外(使用控制台)运行测试时,这不起作用
标签: c++ visual-studio unit-testing visual-studio-2015 vstest.console.exe