vstest.console 可以按所有匹配的特征过滤测试吗?

Can vstest.console filter tests by all matched traits?

on this MSDN article 所述,vstest.console 可以按特征过滤 运行 测试。例如,示例 vstest.console 命令可能如下所示:

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\mytest.dll" /TestCaseFilter:"TestCategory=traitA|TestCategory=traitB|traitN" /logger:trx

实际上,整篇文章都说将使用以下语法提供多个特征:

<Expression> is of the format <property>=<value>[|<Expression>].

我的问题是当你提供的不仅仅是一个特征时,测试是使用逻辑 过滤的,而官方文档没有说明如何过滤匹配 的测试所有给定的特征.

前提是文章有未记录的表达格式。如果您使用 & 而不是 | 来提供多个 特征 您将过滤匹配所有给定特征的测试。

例如:

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\mytest.dll" /TestCaseFilter:"TestCategory=traitA&TestCategory=traitB&traitN" /logger:trx

是的,MSDN 页面中缺少该选项。 但是,工具本身确实提到了它。 特别是从 运行 vstest.console.exe /?

的输出中查找 /TestCaseFilter 开关

感谢您报告此事。