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

См. https://msdn.microsoft.com/en-us/library/jj155800.aspx

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