Opciones de la línea de comandos para VSTest.Console.exe

VSTest.Console.exe es la herramienta de línea de comandos para ejecutar pruebas. Puede especificar varias opciones en cualquier orden en la línea de comandos. Estas opciones se muestran en Opciones generales de la línea de comandos.

Nota

El adaptador de MSTest de Visual Studio también funciona en modo heredado (lo que equivale a ejecutar pruebas con mstest.exe) por motivos de compatibilidad. En el modo heredado no puede aprovechar la característica TestCaseFilter. El adaptador puede cambiar al modo heredado cuando se especifica un archivo testsettings, forcelegacymode se establece en true en un archivo runsettings o se usan atributos como HostType.

Para ejecutar pruebas automatizadas en un equipo basado en la arquitectura ARM, debe usar VSTest.Console.exe.

Abra el Símbolo del sistema para desarrolladores para usar la herramienta de línea de comandos. También encontrará la herramienta en %Archivos de programa(x86)%\Microsoft Visual Studio\<versión>\<edición>\common7\ide\CommonExtensions\<Plataforma | Microsoft>.

Opciones generales de la línea de comandos

En la siguiente tabla se muestran todas las opciones de VSTest.Console.exe junto con una breve descripción. Puede ver un resumen similar si escribe VSTest.Console/? en una línea de comandos.

Opción Descripción
[nombres de archivos de prueba] Ejecuta pruebas desde los archivos especificados. Separe varios nombres de archivos de prueba con espacios.
Ejemplos: mytestproject.dll, mytestproject.dll myothertestproject.exe
/Settings:[nombre de archivo] Ejecuta pruebas con opciones adicionales, como recolectores de datos. Para obtener más información, vea Configuración de pruebas unitarias con un archivo .runsettings.
Ejemplo: /Settings:local.runsettings
/Tests:[nombre de prueba] Ejecuta pruebas con nombres que incluyen los valores proporcionados. Este comando coincide con el nombre de prueba completo, incluido el espacio de nombres. Para proporcionar varios valores, deberá separarlos por comas.
Ejemplo: /Tests:TestMethod1,testMethod2
La opción de línea de comandos /Tests no se puede usar con la opción de línea de comandos /TestCaseFilter.
/Parallel Especifica que las pruebas se ejecutan en paralelo. De forma predeterminada, se pueden usar todos los núcleos disponibles en la máquina. Puede configurar el número de núcleos que se van a usar en un archivo de configuración.
/Enablecodecoverage Habilita el adaptador de diagnóstico de datos CodeCoverage en la serie de pruebas.
Se usa la configuración predeterminada si no se especifica mediante un archivo de configuración.
/InIsolation Ejecuta las pruebas en un proceso aislado.
Con este aislamiento, es menos probable que el proceso vstest.console.exe se detenga por un error de las pruebas, aunque es posible que las pruebas se ejecuten más despacio.
/UseVsixExtensions Esta opción hace que el proceso vstest.console.exe use u omita las extensiones VSIX instaladas (si procede) en la serie de pruebas.
Esta opción está en desuso. A partir de la siguiente versión principal de Visual Studio, esta opción puede desaparecer. Use extensiones disponibles como paquete NuGet.
Ejemplo: /UseVsixExtensions:true
/TestAdapterPath:[ruta] Obliga al proceso vstest.console.exe a usar adaptadores de prueba personalizados de una ruta de acceso especificada (si los hubiera) en la serie de pruebas.
Ejemplo: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[tipo de plataforma] Permite forzar que se use la plataforma especificada en vez de la plataforma determinada del entorno de ejecución actual. Esta opción solo puede forzar plataformas x86 y x64 en Windows. La opción ARM no funciona y dará como resultado x64 en la mayoría de los sistemas.
NO especifique esta opción para que se ejecute en entornos de ejecución que no consten en la lista de valores válidos, como ARM64.
Los valores válidos son x86, x64 y ARM.
/Framework: [versión de Framework] Establezca como destino la versión de .NET que se va a usar para la ejecución de pruebas.
Algunos valores de ejemplo son Framework35, Framework40, Framework45, FrameworkUap10 o .NETCoreApp,Version=v1.1.
TargetFrameworkAttribute se usa para detectar automáticamente esta opción desde el ensamblado y se establece de forma predeterminada en Framework40 cuando el atributo no está presente. Debe especificar esta opción explícitamente si quita TargetFrameworkAttribute de los ensamblados de .NET Core.
Si la plataforma de destino se especifica como Framework35, las pruebas se ejecutan en "modo de compatibilidad" de CLR 4.0.
Ejemplo: /Framework:framework40
/TestCaseFilter:[expresión] Ejecuta pruebas que coinciden con la expresión dada.
<Expression> tiene el formato <property>=<value>[|<Expression>].
Ejemplo: /TestCaseFilter:"Priority=1"
Ejemplo: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
La opción de línea de comandos /TestCaseFilter no se puede usar con la opción de línea de comandos /Tests.
Para obtener información sobre cómo crear y usar expresiones, vea TestCase filter (Filtro TestCase).
/? Muestra información de uso.
/Logger:[uri o nombre descriptivo] Especifica un registrador para resultados de pruebas. Especifique el parámetro varias veces para habilitar varios registradores.
Ejemplo: Para registrar resultados en un archivo de resultados de pruebas de Visual Studio (TRX), utilice
/Logger:trx
[;LogFileName=<Valor predeterminado: nombre de archivo único>]
/ListTests:[nombre de archivo] Muestra las pruebas detectadas del contenedor de pruebas especificado.
Nota: La /TestCaseFilters opción no tiene ningún efecto al enumerar las pruebas; solo controla qué pruebas se ejecutan.
/ListDiscoverers Muestra los programas de detección de pruebas instalados.
/ListExecutors Muestra los programas de ejecución de pruebas instalados.
/ListLoggers Muestra los registradores de pruebas instalados.
/ListSettingsProviders Muestra los proveedores de configuración de pruebas instalados.
/Blame Ejecuta las pruebas en el modo de culpabilidad. Esta opción es útil para aislar las pruebas problemáticas que hacen que el host de prueba se bloquee. Cuando se detecta un bloqueo, crea un archivo de secuencia en TestResults/<Guid>/<Guid>_Sequence.xml que captura el orden de las pruebas ejecutadas antes del bloqueo. Para más información, vea Recopilador de datos de Blame.
/Diag:[nombre de archivo] Escribe registros de seguimiento de diagnóstico en el archivo especificado.
/ResultsDirectory:[ruta de acceso] Si no existe, el directorio de los resultados de la prueba se creará en la ruta de acceso especificada.
Ejemplo: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[IdentificadorProcesoPrincipal] Identificador del proceso principal responsable de iniciar el proceso actual.
/Port:[puerto] El puerto para la conexión de socket y la recepción de mensajes de eventos.
/Collect:[dataCollector friendlyName] Habilita el recopilador de datos para la ejecución de pruebas. Más información.

Sugerencia

Las opciones y los valores no distinguen mayúsculas de minúsculas.

Ejemplos

La sintaxis para ejecutar vstest.console.exe es:

vstest.console.exe [TestFileNames] [Options]

De forma predeterminada, el comando devuelve 0 cuando sale con normalidad, incluso si no se detecta ninguna prueba. Si desea devolver un valor distinto de cero cuando no se detecte ninguna prueba, use la opción runsettings <TreatNoTestsAsError>true</TreatNoTestsAsError>.

El siguiente comando ejecuta vstest.console.exe para la biblioteca de pruebas myTestProject.dll:

vstest.console.exe myTestProject.dll

El siguiente comando ejecuta vstest.console.exe con varios archivos de prueba. Separe los nombres de archivos de prueba con espacios:

vstest.console.exe myTestFile.dll myOtherTestFile.dll

El siguiente comando ejecuta vstest.console.exe con varias opciones. Ejecuta las pruebas en el archivo myTestFile.dll en un proceso aislado y usa la configuración especificada en el archivo Local.RunSettings. Además, solo ejecuta las pruebas marcadas "Prioridad=1" y registra los resultados en un archivo .trx.

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

El siguiente comando ejecuta vstest.console.exe con la opción /blame para la biblioteca de pruebas myTestFile.dll:

vstest.console.exe myTestFile.dll /blame

Si el host de prueba se bloquea, se genera el archivo sequence.xml, que contiene los nombres completos de las pruebas en su secuencia de ejecución hasta (e incluyendo) la prueba específica que se estaba ejecutando en el momento del bloqueo.

Si no hay ningún bloqueo del host de prueba, el archivo sequence.xml no se generará.

Ejemplo de un archivo sequence.xml generado:

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

Ejemplo de UWP

Para UWP, se debe hacer referencia al archivo appxrecipe en vez de un DLL.

vstest.console.exe /Logger:trx /Platform:x64 /framework:frameworkuap10 UnitTestsUWP\bin\x64\Release\UnitTestsUWP.build.appxrecipe