Параметры командной строки для VSTest.Console.exe
VSTest.Console.exe — это программа командной строки для выполнения тестов. В командной строке можно указывать несколько параметров в произвольном порядке. Эти параметры перечислены в таблице Общие параметры командной строки ниже.
Примечание.
Адаптер MSTest в Visual Studio также способен работать в прежнем режиме (эквивалентном выполнению тестов с помощью mstest.exe) в целях совместимости. В прежнем режиме невозможно использовать новые возможности компонента TestCaseFilter. Адаптер может переключиться в прежний режим, если задан TESTSETTINGS-файл, параметр forcelegacymode в RUNSETTINGS-файле установлен в значение true, или с помощью атрибутов, таких как HostType.
Для выполнения автоматических тестов на компьютере с архитектурой ARM необходимо использовать VSTest.Console.exe.
Откройте командную строку разработчика, чтобы использовать программу командной строки. Это средство можно также найти в папке %Program Files(x86)%\Microsoft Visual Studio\<версия>\<выпуск>\common7\ide\CommonExtensions\<Платформа | Microsoft>.
Общие параметры командной строки
В следующей таблице перечислены все параметры VSTest.Console.exe и приведено их краткое описание. Аналогичные данные можно получить, введя VSTest.Console/?
в командной строке.
Вариант | Описание |
---|---|
[тестовых] | Запускает тесты из указанных файлов. Для разделения имен тестовых файлов используйте пробелы. Примеры: mytestproject.dll , mytestproject.dll myothertestproject.exe |
/Settings:[имя файла] | Запуск тестов с дополнительными параметрами, например со сборщиками данных. Дополнительные сведения см. в разделе Настройка модульных тестов с помощью файла .runsettings. Пример: /Settings:local.runsettings |
/Tests:[имя теста] | Выполняйте тесты с именами, которые соответствуют заданным значениям. Эта команда соответствует полному имени теста, включая пространство имен. Для предоставления нескольких значений разделите их запятыми. Пример: /Tests:TestMethod1,testMethod2 Параметр командной строки /Tests нельзя использовать с параметром командной строки /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 , если отсутствует атрибут. Этот параметр необходимо указывать явно, если из сборок .NET Core.удален TargetFrameworkAttribute.Если целевая версия платформы задана как Framework35, тесты выполняются в "режиме совместимости" среды CLR 4.0. Пример: /Framework:framework40 |
/TestCaseFilter:[выражение] | Запуск тестов, соответствующих заданному выражению. <Выражение> имеет формат <свойство>=<значение>[|<Выражение>]. Пример: /TestCaseFilter:"Priority=1" Пример: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName" Параметр командной строки /TestCaseFilter нельзя использовать с параметром командной строки /Tests. Сведения о создании и использовании выражений см. в разделе Фильтр TestCase. |
/? | Отображает сведения об использовании. |
/Logger:[uri/понятное имя] | Укажите средство ведения журнала результатов тестирования. Укажите параметр несколько раз, чтобы включить несколько средств ведения журнала. Пример. Чтобы войти в файл результатов теста Visual Studio (TRX), используйте /Logger:trx [;LogFileName=<По умолчанию уникальное имя файла>] |
/ListTests:[имя файла] | Перечисление обнаруженных тестов из указанного контейнера тестов. Примечание. Параметр не действует при перечислении тестов. Он /TestCaseFilters управляет только тем, какие тесты выполняются. |
/ListDiscoverers | Перечисление установленных средств обнаружения тестов. |
/ListExecutors | Перечисление установленных исполнителей тестов. |
/ListLoggers | Перечисление установленных средств ведения журнала тестирования. |
/ListSettingsProviders | Перечисление установленных поставщиков параметров тестирования. |
/Blame | Выполнение тестов в режиме обвинения. Этот параметр полезен при изоляции проблемных тестов, которые приводят к аварийному завершению хоста для тестов. При обнаружении сбоя он создает файл последовательности в TestResults/<Guid>/<Guid>_Sequence.xml , который фиксирует порядок тестов, выполненных до сбоя. Дополнительные сведения: Запуск cборщика данных в режиме обвинения. |
/Diag:[имя файла] | Записывает диагностические журналы трассировки в указанный файл. |
/ResultsDirectory:[path] | По указанному пути будет создан каталог с результатами теста, если этот путь не существует. Пример: /ResultsDirectory:<pathToResultsDirectory> |
/ParentProcessId:[parentProcessId] | Идентификатор родительского процесса, отвечающего за запуск текущего процесса. |
/Port:[port] | Порт для подключения через сокет и получения сообщений о событиях. |
/Collect:[dataCollector friendlyName] | Включает сборщик данных для тестового запуска. Дополнительные сведения. |
Совет
Регистр в параметрах и значениях не учитывается.
Примеры
Синтаксис для запуска vstest.console.exe имеет следующий вид:
vstest.console.exe [TestFileNames] [Options]
По умолчанию команда возвращает 0 при нормальном выходе, даже если тесты не обнаружены. Если вы хотите вернуть ненулевое значение, если тесты не обнаружены, используйте <TreatNoTestsAsError>true</TreatNoTestsAsError>
параметр runsettings.
Следующая команда запускает 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