Может ли 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 /?

Спасибо за сообщение об этом.

Другие вопросы по тегам