6

As documented on this MSDN article, vstest.consolecan filter tests to run by traits. For example, a sample vstest.console command might look as follows:

"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

Actually, the whole article says that multiple traits will be provided using the following syntax:

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

My issue is when you provide more than a trait, tests are filtered using a logical or and official documentation says nothing about how to filter tests that match all given traits.

Matías Fidemraizer
  • 63,804
  • 18
  • 124
  • 206

2 Answers2

7

Provided article has an undocumented expression format. If you use & instead of | to provide multiple traits, you're going to filter tests which match all given traits.

For example:

"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
Matías Fidemraizer
  • 63,804
  • 18
  • 124
  • 206
0

Yes, that option is missing from the MSDN Page. However it is indeed mentioned in the tool itself. In particular look for the /TestCaseFilter switch from the output of running vstest.console.exe /?

Thank you for reporting this.

pvlakshm
  • 1,365
  • 7
  • 7