vstest.console,exe с ClassName как /testcasefilter
Я ищу выполнение модульного теста с помощью ClassName с помощью vstes.console.exe, любая помощь
Я пробовал как
/TestCaseFilter:"ClassName=ProgressTests"
но выдает ошибку как
Ошибка: ни один тест не соответствует фильтру, поскольку он содержит одно или несколько недопустимых свойств (ClassName). Укажите выражение фильтра, содержащее допустимые свойства (TestCategory, Priority, FullyQualifiedName, Name) и повторите попытку.
Спасибо
3 ответа
Вы можете запустить тесты, указав полное имя класса:
vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping.Cart
где:
MyBusinessDomain.Tests.dll
это тест DLL
MyBusinessDomain.Tests.Shopping.Cart
полное имя класса
Или вы можете запустить тесты классов по пространству имен:
vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping
Эта команда запустит все тесты под MyBusinessDomain.Tests.Shopping
Пространство имен.
ПРИМЕЧАНИЕ: FYI, vstest.console новее, чем mstest и предпочтительнее для запуска через командную строку. Его можно добавить в путь к среде с помощью этого местоположения (для VS2015):
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
Согласно https://blogs.msdn.microsoft.com/vikramagrawal/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter/ - "ClassName действителен только для единицы тесты для приложений магазина Windows, в настоящее время недоступные для классического MSTest", хотя этот пост в блоге появился уже много лет назад.
Вы можете просто использовать тип фильтра FullyQualifiedName, как в /testcasefilter:FullyQualifiedName~NameSpace.Class
Тильда ~
означает "содержит", так что если Foobar
это название вашего класса:
vstest.console bin\Debug\MyTests.dll /TestCaseFilter:FullyQualifiedName~Foobar