opciones de línea de comandos de 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 línea de comandos.
Nota
El adaptador de MSTest en Visual Studio también funciona en modo heredado (equivalente 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 de runsettings o mediante atributos como HostType.
Para ejecutar pruebas automatizadas en una máquina basada en arquitectura de ARM, debe usar VSTest.Console.exe.
Abra símbolo del sistema para desarrolladores para usar la herramienta de línea de comandos o puede encontrar la herramienta en %Program Files(x86)%\Microsoft Visual Studio\<versión>\<edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.
Opciones generales de línea de comandos
En la tabla siguiente se enumeran todas las opciones de VSTest.Console.exe y descripciones breves de ellas. Puede ver un resumen similar escribiendo VSTest.Console/?
en una línea de comandos.
Opción | Descripción |
---|---|
[nombres de archivo de prueba] | Ejecute pruebas a partir de los archivos especificados. Separe varios nombres de archivo de prueba con espacios. Ejemplos: mytestproject.dll , mytestproject.dll myothertestproject.exe |
/Settings:[nombre de archivo] | Ejecute pruebas con configuraciones adicionales, como recopiladores de datos. Para obtener más información, consulte Configuración de pruebas unitarias mediante un archivo .runsettings Ejemplo: /Settings:local.runsettings |
/Tests:[nombre de prueba] | Ejecute pruebas con nombres que contengan los valores proporcionados. Este comando coincide con el nombre de prueba completo, incluido el espacio de nombres . Para proporcionar varios valores, separe por comas. Ejemplo: /Tests:TestMethod1,testMethod2 No se puede usar la opción de línea de comandos /Tests con la opción de línea de comandos /TestCaseFilter. |
/Parallel | Especifica que las pruebas se ejecutarán en paralelo. De forma predeterminada, se pueden usar hasta todos los núcleos disponibles en la máquina. Puede configurar el número de núcleos que se usarán en un archivo de configuración. |
/Enablecodecoverage | Habilita el adaptador de diagnóstico de datos CodeCoverage en la ejecución de pruebas. La configuración predeterminada se usa si no se especifica mediante el archivo de configuración. |
/InIsolation | Ejecuta las pruebas en un proceso aislado. Este aislamiento hace que el proceso de vstest.console.exe sea menos probable que se detenga en un error en las pruebas, pero es posible que las pruebas se ejecuten más lentamente. |
/UseVsixExtensions | Esta opción hace que el proceso de vstest.console.exe use o omita las extensiones VSIX instaladas (si las hay) en la ejecución de pruebas. Esta opción está en desuso. A partir de la próxima versión principal de Visual Studio, esta opción se puede quitar. Vaya a consumir extensiones disponibles como un paquete NuGet. Ejemplo: /UseVsixExtensions:true |
/TestAdapterPath:[ruta de acceso] | Obliga al proceso de vstest.console.exe a usar adaptadores de prueba personalizados desde una ruta de acceso especificada (si existe) en la ejecución de pruebas. Ejemplo: /TestAdapterPath:[pathToCustomAdapters] |
/Platform:[tipo de plataforma] | Fuerza el uso de la plataforma especificada, en lugar de la plataforma determinada a partir del tiempo de ejecución actual. Esta opción solo puede forzar plataformas x86 y x64 en Windows. La opción ARM está rota y dará como resultado x64 en la mayoría de los sistemas. No especifique esta opción para ejecutarse en entornos de ejecución que no estén en la lista de valores válidos, como ARM64. Los valores válidos son x86, x64 y ARM. |
/Framework: [versión del marco] | Versión de .NET de destino que se usará para la ejecución de pruebas. Los valores de ejemplo son Framework35 , Framework40 , Framework45 , FrameworkUap10 , .NETCoreApp,Version=v1.1 .TargetFrameworkAttribute se usa para detectar automáticamente esta opción del ensamblado y el valor predeterminado es Framework40 cuando el atributo no está presente. Debe especificar esta opción explícitamente si quita el TargetFrameworkAttribute de los ensamblados de .NET Core.Si el marco de destino se especifica como Framework35, las pruebas se ejecutan en el "modo de compatibilidad" de CLR 4.0. Ejemplo: /Framework:framework40 |
/TestCaseFilter:[expresión] | Ejecute pruebas que coincidan con la expresión especificada. <Expresión> es del formato <propiedad>=<valor>[|<Expresión>]. Ejemplo: /TestCaseFilter:"Priority=1" Ejemplo: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName" No se puede usar la opción de línea de comandos /TestCaseFilter con la opción de línea de comandos /Tests. Para obtener información sobre cómo crear y usar expresiones, vea filtro TestCase. |
/? | Muestra información de uso. |
/Logger:[uri/friendlyname] | Especifique un registrador para los resultados de la prueba. Especifique el parámetro varias veces para habilitar varios registradores. Ejemplo: Para registrar los resultados en un archivo de resultados de pruebas de Visual Studio (TRX), use /Logger:trx [; LogFileName=<El valor predeterminado es el nombre de archivo único>] |
/ListTests:[nombre de archivo] | Enumera las pruebas detectadas del contenedor de pruebas especificado. Nota: La opción /TestCaseFilters no tiene ningún efecto al enumerar las pruebas; solo controla qué pruebas se ejecutan. |
/ListDiscoverers | Enumera los detecdores de pruebas instalados. |
/ListExecutors | Enumera los ejecutores de prueba instalados. |
/ListLoggers | Enumera los registradores de pruebas instalados. |
/ListSettingsProviders | Enumera los proveedores de configuración de prueba instalados. |
/Blame | Ejecuta las pruebas en modo de culpa. 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 que se ejecutaron antes del bloqueo. Para obtener más información, consulte del recopilador de datos De culpa. |
/Diag:[nombre de archivo] | Escribe registros de seguimiento de diagnóstico en el archivo especificado. |
/ResultsDirectory:[ruta de acceso] | Si no existe, se creará el directorio de resultados de pruebas en la ruta de acceso especificada. Ejemplo: /ResultsDirectory:<pathToResultsDirectory> |
/ParentProcessId:[parentProcessId] | Id. de proceso del proceso primario responsable de iniciar el proceso actual. |
/Port:[puerto] | Puerto para la conexión de socket y recepción de los mensajes de evento. |
/Collect:[dataCollector friendlyName] | Habilita el recopilador de datos para la ejecución de pruebas. Más información. |
Propina
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 normalmente, aunque no se detecten pruebas. Si desea devolver un valor distinto de cero si no se detecta ninguna prueba, use <TreatNoTestsAsError>true</TreatNoTestsAsError>
opción runsettings.
El comando siguiente ejecuta vstest.console.exe para la biblioteca de pruebas myTestProject.dll:
vstest.console.exe myTestProject.dll
El comando siguiente ejecuta vstest.console.exe con varios archivos de prueba. Separe los nombres de archivo de prueba con espacios:
vstest.console.exe myTestFile.dll myOtherTestFile.dll
El comando siguiente 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 pruebas marcadas como "Priority=1" y registra los resultados en un archivo de .trx.
vstest.console.exe myTestFile.dll /Settings:Local.RunSettings /InIsolation /TestCaseFilter:"Priority=1" /Logger:trx
El comando siguiente ejecuta vstest.console.exe con la opción /blame
para la biblioteca de pruebas myTestProject.dll:
vstest.console.exe myTestFile.dll /blame
Si se ha producido un bloqueo de host de prueba, se genera el archivo sequence.xml. El archivo contiene nombres completos de las pruebas en su secuencia de ejecución hasta e incluye la prueba específica que se estaba ejecutando en el momento del bloqueo.
Si no hay ningún bloqueo del host de prueba, no se generará el archivo sequence.xml.
Ejemplo de un archivo de 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 lugar de a un archivo DLL.
vstest.console.exe /Logger:trx /Platform:x64 /framework:frameworkuap10 UnitTestsUWP\bin\x64\Release\UnitTestsUWP.build.appxrecipe