параметры командной строки VSTest.Console.exe
VSTest.Console.exe — это средство командной строки для выполнения тестов. Можно указать несколько параметров в любом порядке в командной строке. Эти параметры перечислены в параметрах командной строки "Общие".
Заметка
Адаптер MSTest в Visual Studio также работает в устаревшем режиме (эквивалентно выполнению тестов с mstest.exe) для обеспечения совместимости. В устаревшем режиме не удается воспользоваться функцией TestCaseFilter. Адаптер может переключиться в устаревший режим, если указан файл testettings, forcelegacymode имеет значение true в файле запуска или с помощью таких атрибутов, как HostType.
Чтобы запустить автоматизированные тесты на компьютере на основе архитектуры ARM, необходимо использовать VSTest.Console.exe.
Откройте командную строку разработчика, чтобы использовать программу командной строки, или вы можете найти это средство в %Program%\Microsoft Visual Studio\<версии>\<edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.
Общие параметры командной строки
В следующей таблице перечислены все параметры VSTest.Console.exe и кратких описаниях. Вы можете увидеть аналогичную сводку, введя VSTest.Console/?
в командной строке.
Выбор | Описание |
---|---|
[имена тестовых файлов] | Запустите тесты из указанных файлов. Разделите несколько имен тестовых файлов с пробелами. Примеры: mytestproject.dll , mytestproject.dll myothertestproject.exe |
/Settings:[ имя файла] | Запустите тесты с дополнительными параметрами, такими как сборщики данных. Дополнительные сведения см. в разделе Настройка модульных тестов с помощью файла .runsettings Пример: /Settings:local.runsettings |
/Test:[имя теста] | Выполните тесты с именами, содержащими предоставленные значения. Эта команда соответствует полному имени теста, включая пространство имен. Чтобы предоставить несколько значений, разделите их запятыми. Пример: /Tests:TestMethod1,testMethod2 Параметр командной строки /Test нельзя использовать с параметром командной строки /TestCaseFilter. |
/Parallel | Указывает, что тесты выполняются параллельно. По умолчанию можно использовать до всех доступных ядер на компьютере. Можно настроить количество ядер, используемых в файле параметров. |
/Enablecodecoverage | Включает адаптер диагностики данных CodeCoverage в тестовом запуске. Параметры по умолчанию используются, если не указано с помощью файла параметров. |
/InIsolation | Выполняет тесты в изолированном процессе. Эта изоляция делает процесс vstest.console.exe менее вероятным для остановки ошибки в тестах, но тесты могут выполняться медленнее. |
/UseVsixExtensions | Этот параметр делает процесс vstest.console.exe использовать или пропускать установленные расширения VSIX (если таковые есть) в тестовом запуске. Этот параметр не рекомендуется. Начиная с следующего основного выпуска Visual Studio этот параметр может быть удален. Перейдите к потребляющим расширениям, доступным в виде пакета NuGet. Пример: /UseVsixExtensions:true |
/TestAdapterPath:[пути] | Принудительно vstest.console.exe процесса использовать пользовательские адаптеры тестов из указанного пути (если таковые есть) в тестовом запуске. Пример: /TestAdapterPath:[pathToCustomAdapters] |
/Platform:[тип платформы] | Принудительно заставляет используемую платформу вместо платформы, определенной из текущей среды выполнения. Этот параметр может принудительно использовать только платформы x86 и x64 в Windows. Параметр ARM не работает и приведет к x64 в большинстве систем. Не указывайте этот параметр для запуска во время выполнения, которые не находятся в списке допустимых значений, таких как ARM64. Допустимые значения: x86, x64 и ARM. |
/Framework: [версии платформы] | Целевая версия .NET, используемая для тестового выполнения. Примеры значений: Framework35 , Framework40 , Framework45 , FrameworkUap10 , .NETCoreApp,Version=v1.1 .TargetFrameworkAttribute используется для автоматического обнаружения этого параметра из сборки и по умолчанию Framework40 , если атрибут отсутствует. Этот параметр необходимо указать явным образом, если удалить TargetFrameworkAttribute из сборок .NET Core.Если целевая платформа указана как Framework35, тесты выполняются в режиме совместимости CLR 4.0. Пример: /Framework:framework40 |
/TestCaseFilter:[выражение] | Выполните тесты, соответствующие заданному выражению. > выражения <имеет свойство <формата>=<значение>[|<expression>]. Пример: /TestCaseFilter:"Priority=1" Пример: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName" Параметр командной строки /TestCaseFilter нельзя использовать с параметром командной строки /Test. Сведения о создании и использовании выражений см. в фильтра TestCase. |
/? | Отображает сведения об использовании. |
/Loger:[URI/friendlyname] | Укажите средство ведения журнала для результатов теста. Укажите параметр несколько раз, чтобы включить несколько средств ведения журнала. Пример. Чтобы войти в файл результатов теста Visual Studio (TRX), используйте /Loger:trx [; LogFileName=<По умолчанию используется уникальное имя файла>] |
/ListTests:[имя файла] | Перечисляет обнаруженные тесты из заданного контейнера тестов. Примечание. Параметр /TestCaseFilters не действует при перечислении тестов; он управляет только тем, какие тесты получают выполнение. |
/ListDiscoverers | Выводит список установленных тестовых обнаруживателей. |
/ListExecutors | Выводит список установленных исполнителей тестов. |
/ListLoggers | Выводит список установленных средств ведения журнала тестов. |
/ListSettingsProviders | Выводит список установленных поставщиков параметров тестирования. |
/Blame | Выполняет тесты в режиме вины. Этот параметр полезен при изоляции проблемных тестов, которые приводят к сбою узла тестирования. При обнаружении сбоя создается файл последовательности в TestResults/<Guid>/<Guid>_Sequence.xml , который фиксирует порядок тестов, выполняемых до сбоя. Дополнительные сведения см. в сборщик данных вины. |
/Diag:[имя файла] | Записывает журналы диагностики трассировки в указанный файл. |
/ResultsDirectory:[ путь] | Каталог результатов теста будет создан в указанном пути, если он не существует. Пример: /ResultsDirectory:<pathToResultsDirectory> |
/ParentProcessId:[parentProcessId] | Идентификатор процесса родительского процесса, ответственного за запуск текущего процесса. |
/Port:[порт] | Порт подключения сокета и получение сообщений о событии. |
/Collect:[dataCollector friendlyName] | Включает сборщик данных для тестового запуска. Дополнительные сведения. |
Кончик
Параметры и значения не учитывает регистр.
Примеры
Синтаксис для выполнения vstest.console.exe:
vstest.console.exe [TestFileNames] [Options]
По умолчанию команда возвращает значение 0 при обычном выходе, даже если тесты не обнаружены. Если вы хотите вернуть ненулевое значение, если тесты не обнаружены, используйте параметр <TreatNoTestsAsError>true</TreatNoTestsAsError>
запуска.
Следующая команда выполняет vstest.console.exe для myTestProject.dllбиблиотеки тестов:
vstest.console.exe myTestProject.dll
Следующая команда выполняется vstest.console.exe с несколькими тестовых файлами. Отдельные имена тестовых файлов с пробелами:
vstest.console.exe myTestFile.dll myOtherTestFile.dll
Следующая команда выполняется vstest.console.exe с несколькими параметрами. Он выполняет тесты в файле myTestFile.dll в изолированном процессе и использует параметры, указанные в файле Local.RunSettings. Кроме того, он выполняет тесты, помеченные "Priority=1", и записывает результаты в файл .trx.
vstest.console.exe myTestFile.dll /Settings:Local.RunSettings /InIsolation /TestCaseFilter:"Priority=1" /Logger:trx
Следующая команда запускает vstest.console.exe с параметром /blame
для myTestProject.dllбиблиотеки тестов:
vstest.console.exe myTestFile.dll /blame
Если произошел сбой тестового узла, создается файл sequence.xml. Файл содержит полные имена тестов в их последовательности выполнения до определенного теста, выполняемого во время сбоя.
Если тестового узла не произойдет сбой, файл sequence.xml не будет создан.
Пример созданного sequence.xml файла:
<?xml version="1.0"?>
<TestSequence>
<Test Name="TestProject.UnitTest1.TestMethodB" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
<Test Name="TestProject.UnitTest1.TestMethodA" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
</TestSequence>
Пример UWP
Для UWP файл appxrecipe должен ссылаться вместо библиотеки DLL.
vstest.console.exe /Logger:trx /Platform:x64 /framework:frameworkuap10 UnitTestsUWP\bin\x64\Release\UnitTestsUWP.build.appxrecipe