Параметры командной строки для VSTest.Console.exeVSTest.Console.exe command-line options

VSTest.Console.exe — это программа командной строки для выполнения тестов.VSTest.Console.exe is the command-line tool to run tests. В командной строке можно указывать несколько параметров в произвольном порядке.You can specify several options in any order on the command line. Эти параметры перечислены в таблице Общие параметры командной строки ниже.These options are listed in General command-line options.

Примечание

Адаптер MSTest в Visual Studio также способен работать в прежнем режиме (эквивалентном выполнению тестов с помощью mstest.exe) в целях совместимости.The MSTest adapter in Visual Studio also works in legacy mode (equivalent to running tests with mstest.exe) for compatibility. В прежнем режиме невозможно использовать новые возможности компонента TestCaseFilter.In legacy mode, it can't take advantage of the TestCaseFilter feature. Адаптер может переключиться в прежний режим, если задан TESTSETTINGS-файл, параметр forcelegacymode в RUNSETTINGS-файле установлен в значение true, или с помощью атрибутов, таких как HostType.The adapter can switch to legacy mode when a testsettings file is specified, forcelegacymode is set to true in a runsettings file, or by using attributes such as HostType.

Для выполнения автоматических тестов на компьютере с архитектурой ARM необходимо использовать VSTest.Console.exe.To run automated tests on an ARM architecture-based machine, you must use VSTest.Console.exe.

Откройте Командную строку разработчика, чтобы использовать программу командной строки. Это средство можно также найти в папке %Program Files(x86)%\Microsoft Visual Studio\<версия>\<выпуск>\common7\ide\CommonExtensions\<Платформа | Microsoft> .Open a Developer Command Prompt to use the command-line tool, or you can find the tool in %Program Files(x86)%\Microsoft Visual Studio\<version>\<edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.

Общие параметры командной строкиGeneral command-line options

В следующей таблице перечислены все параметры VSTest.Console.exe и приведено их краткое описание.The following table lists all the options for VSTest.Console.exe and short descriptions of them. Аналогичные данные можно получить, введя VSTest.Console/? в командной строке.You can see a similar summary by typing VSTest.Console/? at a command line.

ПараметрOption ОписаниеDescription
[тестовых][test file names] Запускает тесты из указанных файлов.Run tests from the specified files. Для разделения имен тестовых файлов используйте пробелы.Separate multiple test file names with spaces.
Примеры: mytestproject.dll, mytestproject.dll myothertestproject.exeExamples: mytestproject.dll, mytestproject.dll myothertestproject.exe
/Settings:[имя файла]/Settings:[file name] Запуск тестов с дополнительными параметрами, например со сборщиками данных.Run tests with additional settings such as data collectors. Дополнительные сведения см. в разделе Настройка модульных тестов с помощью файла .runsettings.For more information, see Configure unit tests using a .runsettings file
Пример: /Settings:local.runsettingsExample: /Settings:local.runsettings
/Tests:[имя теста]/Tests:[test name] Выполняйте тесты с именами, которые соответствуют заданным значениям.Run tests with names that contain the provided values. Для предоставления нескольких значений разделите их запятыми.To provide multiple values, separate them by commas.
Пример: /Tests:TestMethod1,testMethod2Example: /Tests:TestMethod1,testMethod2
Параметр командной строки /Tests нельзя использовать с параметром командной строки /TestCaseFilter.The /Tests command-line option cannot be used with the /TestCaseFilter command-line option.
/Parallel/Parallel Указывает, что тесты должны выполняться параллельно.Specifies that the tests be executed in parallel. По умолчанию могут использоваться все доступные на компьютере ядра.By default, up to all available cores on the machine can be used. Число ядер для использования можно настроить с помощью файла параметров.You can configure the number of cores to use in a settings file.
/Enablecodecoverage/Enablecodecoverage Включение адаптера диагностических данных CodeCoverage в тестовом запуске.Enables data diagnostic adapter CodeCoverage in the test run.
Параметры по умолчанию используются, если другие параметры не заданы с использованием файла параметров.Default settings are used if not specified using settings file.
/InIsolation/InIsolation Запуск тестов в изолированном процессе.Runs the tests in an isolated process.
Эта изоляция существенно снижает вероятность остановки процесса vstest.console.exe при возникновении ошибки в тестах, однако тесты могут выполняться медленнее.This isolation makes the vstest.console.exe process less likely to be stopped on an error in the tests, but tests might run slower.
/UseVsixExtensions/UseVsixExtensions Процесс vstest.console.exe будет использовать или пропускать установленные расширения VSIX (если они имеются) при запуске тестов.This option makes the vstest.console.exe process use or skip the VSIX extensions installed (if any) in the test run.
Этот параметр использовать не рекомендуется.This option is deprecated. Уже в следующем основном выпуске Visual Studio этот параметр может быть удален.Starting from the next major release of Visual Studio this option may be removed. Переходите на использование расширений, доступных в виде пакета NuGet.Move to consuming extensions made available as a NuGet package.
Пример: /UseVsixExtensions:trueExample: /UseVsixExtensions:true
/TestAdapterPath:[путь]/TestAdapterPath:[path] Процесс vstest.console.exe в тестовом запуске будет использовать адаптеры пользовательских тестов по указанному пути (если они там есть).Forces the vstest.console.exe process to use custom test adapters from a specified path (if any) in the test run.
Пример: /TestAdapterPath:[pathToCustomAdapters]Example: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[тип платформы]/Platform:[platform type] Принудительное использование данной платформы вместо платформы, определенной в текущей среде выполнения.Forces the given platform to be used, instead of the platform determined from the current runtime. Этот параметр способен принудительно использовать только платформы x86 и x64 в Windows.This option is able to force only x86, and x64 platforms on Windows. Параметр ARM не работает и приводит к появлению x64 в большинстве систем.The ARM option is broken and will result in x64 on most systems.
НЕ указывайте этот параметр для запуска в средах выполнения, которые не указаны в списке допустимых значений, таких как ARM64.Do NOT specify this option to run on runtimes that are not in the list of valid values such as ARM64.
Допустимые значения — x86, x64 и ARM.Valid values are x86, x64, and ARM.
/Framework: [версия платформы]/Framework: [framework version] Целевая версия .NET, которую следует использовать для выполнения тестов.Target .NET version to be used for test execution.
Примеры значений: Framework35, Framework40, Framework45, FrameworkUap10, .NETCoreApp,Version=v1.1.Example values are Framework35, Framework40, Framework45, FrameworkUap10, .NETCoreApp,Version=v1.1.
TargetFrameworkAttribute используется для автоматического обнаружения этого параметра в сборке, его значение по умолчанию Framework40, если отсутствует атрибут.TargetFrameworkAttribute is used to automatically detect this option from your assembly, and defaults to Framework40 when the attribute is not present. Этот параметр необходимо указывать явно, если из сборок .NET Core.удален TargetFrameworkAttribute.You must specify this option explicitly if you remove the TargetFrameworkAttribute from your .NET Core assemblies.
Если целевая версия платформы задана как Framework35, тесты выполняются в "режиме совместимости" среды CLR 4.0.If the target framework is specified as Framework35, the tests run in CLR 4.0 "compatibility mode".
Пример: /Framework:framework40Example: /Framework:framework40
/TestCaseFilter:[выражение]/TestCaseFilter:[expression] Запуск тестов, соответствующих заданному выражению.Run tests that match the given expression.
<Выражение> формата <свойство>=<значение>[|<Выражение>].<Expression> is of the format <property>=<value>[|<Expression>].
Пример: /TestCaseFilter:"Priority=1"Example: /TestCaseFilter:"Priority=1"
Пример: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"Example: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
Параметр командной строки /TestCaseFilter нельзя использовать с параметром командной строки /Tests.The /TestCaseFilter command-line option cannot be used with the /Tests command-line option.
Сведения о создании и использовании выражений см. в разделе Фильтр TestCase.For information about creating and using expressions, see TestCase filter.
/?/? Отображает сведения об использовании.Displays usage information.
/Logger:[uri/понятное имя]/Logger:[uri/friendlyname] Укажите средство ведения журнала результатов тестирования.Specify a logger for test results. Укажите параметр несколько раз, чтобы включить несколько средств ведения журнала.Specify the parameter multiple times to enable multiple loggers.
Пример. Чтобы записать результаты в файл результатов теста Visual Studio (TRX), воспользуйтесьExample: To log results into a Visual Studio Test Results File (TRX), use
/Logger:trx/Logger:trx
[;LogFileName=<Defaults to unique file name>][;LogFileName=<Defaults to unique file name>]
/ListTests:[имя файла]/ListTests:[file name] Перечисление обнаруженных тестов из указанного контейнера тестов.Lists discovered tests from the given test container.
/ListDiscoverers/ListDiscoverers Перечисление установленных средств обнаружения тестов.Lists installed test discoverers.
/ListExecutors/ListExecutors Перечисление установленных исполнителей тестов.Lists installed test executors.
/ListLoggers/ListLoggers Перечисление установленных средств ведения журнала тестирования.Lists installed test loggers.
/ListSettingsProviders/ListSettingsProviders Перечисление установленных поставщиков параметров тестирования.Lists installed test settings providers.
/Blame/Blame Выполнение тестов в режиме обвинения.Runs the tests in blame mode. Этот параметр полезен при изоляции проблемных тестов, которые приводят к аварийному завершению хоста для тестов.This option is helpful in isolating problematic tests that cause the test host to crash. При обнаружении сбоя он создает файл последовательности в TestResults/<Guid>/<Guid>_Sequence.xml, который фиксирует порядок тестов, выполненных до сбоя.When a crash is detected, it creates a sequence file in TestResults/<Guid>/<Guid>_Sequence.xml that captures the order of tests that were run before the crash. Дополнительные сведения: Запуск cборщика данных в режиме обвинения.For more information, see Blame data collector.
/Diag:[имя файла]/Diag:[file name] Записывает диагностические журналы трассировки в указанный файл.Writes diagnostic trace logs to the specified file.
/ResultsDirectory:[path]/ResultsDirectory:[path] По указанному пути будет создан каталог с результатами теста, если этот путь не существует.Test results directory will be created in specified path if not exists.
Пример: /ResultsDirectory:<pathToResultsDirectory>Example: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[parentProcessId]/ParentProcessId:[parentProcessId] Идентификатор родительского процесса, отвечающего за запуск текущего процесса.Process ID of the Parent Process responsible for launching current process.
/Port:[port]/Port:[port] Порт для подключения через сокет и получения сообщений о событиях.The Port for socket connection and receiving the event messages.
/Collect:[dataCollector friendlyName]/Collect:[dataCollector friendlyName] Включает сборщик данных для тестового запуска.Enables data collector for the test run. Дополнительные сведения.More information.

Совет

Регистр в параметрах и значениях не учитывается.The options and values are not case-sensitive.

ПримерыExamples

Синтаксис для запуска vstest.console.exe имеет следующий вид:The syntax for running vstest.console.exe is:

vstest.console.exe [TestFileNames] [Options]

Следующая команда запускает vstest.console.exe для библиотеки тестов myTestProject.dll:The following command runs vstest.console.exe for the test library myTestProject.dll:

vstest.console.exe myTestProject.dll

Следующая команда запускает vstest.console.exe с множеством тестовых файлов.The following command runs vstest.console.exe with multiple test files. Для разделения имен тестовых файлов используйте пробелы.Separate test file names with spaces:

vstest.console.exe myTestFile.dll myOtherTestFile.dll

Следующая команда запускает vstest.console.exe с несколькими параметрами.The following command runs vstest.console.exe with several options. Она запускает тесты в файле myTestFile.dll в изолированном процессе и использует параметры, заданные в файле Local.RunSettings.It runs the tests in the myTestFile.dll file in an isolated process and uses settings specified in the Local.RunSettings file. Кроме того, она запускает только тесты с меткой "Priority=1" и записывает результаты в TRX-файл.Additionally, it only runs tests marked "Priority=1", and logs the results to a .trx file.

vstest.console.exe myTestFile.dll /Settings:Local.RunSettings /InIsolation /TestCaseFilter:"Priority=1" /Logger:trx

Следующая команда запускает vstest.console.exe с параметром /blame для библиотеки тестов myTestProject.dll:The following command runs vstest.console.exe with the /blame option for the test library myTestProject.dll:

vstest.console.exe myTestFile.dll /blame

В случае сбоя узла тестов создается файл sequence.xml.If a test host crash happened, the sequence.xml file is generated. Этот файл содержит полные имена тестов в порядке их выполнения вплоть до конкретного теста, который выполнялся во время сбоя.The file contains fully qualified names of the tests in their sequence of execution up to and including the specific test that was running at the time of the crash.

При отсутствии сбоя узла тестов файл sequence.xml не создается.If there is no test host crash, the sequence.xml file will not be generated.

Пример созданного файла sequence.xml:Example of a generated sequence.xml file:

<?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>