Может ли vstest.console фильтровать тесты по всем совпадающим признакам?
Как описано в этой статье MSDN, 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>].
Моя проблема заключается в том, что когда вы предоставляете больше, чем признак, тесты фильтруются с использованием логического или, а официальная документация ничего не говорит о том, как фильтровать тесты, которые соответствуют всем заданным признакам.
2 ответа
При условии, что статья имеет недокументированный формат выражения. Если вы используете &
вместо |
чтобы предоставить несколько признаков, вы будете фильтровать тесты, которые соответствуют всем заданным характеристикам.
Например:
"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. Однако это действительно упоминается в самом инструменте. В частности, ищите ключ /TestCaseFilter из выходных данных запуска vstest.console.exe /?
Спасибо за сообщение об этом.