首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSTest.console按属性筛选本机c++单元测试

VSTest.console按属性筛选本机c++单元测试
EN

Stack Overflow用户
提问于 2016-02-24 09:42:15
回答 1查看 844关注 0票数 3

我目前遇到了以下问题:

通过使用Visual 2015 c++中包含的本机microsoft单元测试框架,我们在本机c++应用程序中引入了单元测试。

为了在visual中启动单元测试,我们使用了Test-Explorer,如图1所示。通过向Test-Method添加一个method attribute (如图2所示),Test-Explorer允许按属性进行排序和筛选(如图3所示)。

所有这些都没有问题。当我们试图在我们的持续集成系统(CI)中实现这些单元测试时,我们开始遇到问题。

要从控制台启动Unit-测试,我们使用vstest.console.exe,位于:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe中。正式文档可以找到这里。

下面的屏幕快照显示了在使用控制台时测试是如何成功的:

向.trx添加记录器和输出文件也很有效。然而,而不是的工作是应用过滤器来确定具有特定属性的测试。根据文档,这样的事情应该可以通过使用/TestCaseFilter:-switch来实现。然而,下面的屏幕截图显示了由此产生的错误:

它转换为:“没有测试匹配筛选器,因为它包含一个或多个无效属性(TakesLong)。请指定包含有效属性(TestCategory、优先级、FullyQualifiedName、名称)的筛选器表达式,然后重试。”

有没有人知道这个问题,或者对如何解决这个问题有想法?最终目标是能够排除某些测试(需要很长的时间/需要一个硬件工具等等)。

我向你问好,LorToso

EN

回答 1

Stack Overflow用户

发布于 2017-03-22 23:14:11

我也遇到了这个问题,不幸的是,我们只是运气不佳。vstest.console.exe只支持有限数量的C++和C#过滤器。

我认为我将要转向的方法是将测试隔离到不同的模块中,这样我就可以在夜间运行单元测试和CI构建以及集成测试(比如需要一个数据库),只用于发布版本。

或者,您可以根据同一个模块中的命名空间将它们拆分,并使用FullyQualifiedName筛选器。不幸的是,这里也没有'!~‘条件,所以你可能不得不设法解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35598460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档