Запуск тестов на основе пространства имен с использованием vstest.console с использованием

Я использую MsTest.exe для запуска тестов с использованием пространства имен, например:

mstest.exe /testcontainer: "MyDllFile.dll" /test: "NameSpace.Folder.Folder1.*"

Это работало как шарм, но мне нужно было иметь возможность передавать параметры во время выполнения моим тестам, поэтому я нашел файл *.runsettings и его возможность передавать параметры в тест с помощью RunTestParameters и получать их из свойств в TestContext, но Недостатком является то, что я должен быть очень конкретным в отношении того, какие тесты я хочу запустить, и должен дать ему конкретное имя метода или имена, разделенные запятыми, для выполнения тестов, как показано ниже:

vstest.console.exe "MyDllFile.dll" /Settings:"my.runsettings" /Tests:"TestMethod1,TestMethod2"

Я также безуспешно пробовал TestCaseFilter:

vstest.console.exe "vstest.console.exe "MyDllFile.dll" /Settings:"my.runsettings" /TestCaseFilter:"TestCategory=MyTestCategory"

Есть ли у кого-нибудь предложение относительно того, как я могу выполнить то, что я смог сделать с mstest.exe с помощью vstest.console.exe?

Спасибо!!


person Alejandro Taylor    schedule 06.01.2016    source источник


Ответы (1)


Документация для vstest.console.exe особенно плоха. Это возможно, но ни в справке по командной строке, ни в документации MSDN не объясняется, как это сделать.

Параметры, доступные для параметра TestCaseFilter, кажутся специфичными для адаптера, но для адаптера MsTest по умолчанию доступны следующие свойства для фильтрации.

Name=<TestMethodDisplayNameName>
FullyQualifiedName=<FullyQualifiedTestMethodName>
Priority=<PriorityAttributeValue>
TestCategory=<TestCategoryAttributeValue>
ClassName=<ClassName> (Valid only for unit tests for Windows store apps, currently not available for classic MSTest)

..используя следующие операторы.

= (equals)
!= (not equals)
~ (contains or substring only for string values)
& (and)
| (or)
( ) (paranthesis for grouping)

Поэтому для ваших целей должно хватить TestCaseFilter следующей формы.

/TestCaseFilter:"FullyQualifiedName~ProjectNamespace.Subnamespace.TestClass"

Дополнительная информация и примеры здесь testcasefilter.aspx" rel="nofollow">http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using- testcasefilter.aspx

person Neutrino    schedule 07.03.2016
comment
Спасибо! Я попробую это. я - person Alejandro Taylor; 10.03.2016
comment
TestClass в приведенном выше примере СОДЕРЖИТ. /TestCaseFilter:"FullyQualifiedName~ProjectNamespace.Subnamespace.TestClass" будет соответствовать ЛЮБОМУ тесту в этом подпространстве имен, которое начинается с TestClass. - person Clive Galway; 09.03.2018