Tarea Prueba de Visual Studio

Azure Pipelines

Use esta tarea para ejecutar pruebas unitarias y funcionales (Selenium, Appium, prueba de IU codificada, etc.) mediante el Visual Studio Test Runner. Además de las pruebas basadas en MSTest, también se pueden ejecutar marcos de prueba que tienen un adaptador de prueba de Visual Studio, como xUnit, NUnit o Churtzpah.

Las pruebas destinadas a .NET Core Framework se pueden ejecutar especificando el valor adecuado de la plataforma de destino en el archivo .runsettings.

Las pruebas se pueden distribuir en varios agentes mediante la versión 2 de esta tarea. Para obtener más información, vea Ejecutar pruebas en paralelo mediante la Visual Studio test.

Comprobación de los requisitos previos

Si usa un agente Windows auto-hospedado, asegúrese de que la máquina tiene instalado este requisito previo:

Peticiones

El agente debe tener la siguiente funcionalidad:

vstest

La demanda de vstest se puede satisfacer de dos maneras:

  1. Visual Studio está instalado en la máquina del agente.

  2. Mediante el uso de la Visual Studio instalador de la plataforma de prueba en la definición de canalización.

Fragmento de código YAML

# Visual Studio Test
# Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2).
- task: VSTest@2
  inputs:
    #testSelector: 'testAssemblies' # Options: testAssemblies, testPlan, testRun
    #testAssemblyVer2: | # Required when testSelector == TestAssemblies
    #  **\*test*.dll
    #  !**\*TestAdapter.dll
    #  !**\obj\** 
    #testPlan: # Required when testSelector == TestPlan
    #testSuite: # Required when testSelector == TestPlan
    #testConfiguration: # Required when testSelector == TestPlan
    #tcmTestRun: '$(test.RunId)' # Optional
    #searchFolder: '$(System.DefaultWorkingDirectory)' 
    #testFiltercriteria: # Optional
    #runOnlyImpactedTests: False # Optional
    #runAllTestsAfterXBuilds: '50' # Optional
    #uiTests: false # Optional
    #vstestLocationMethod: 'version' # Optional. Options: version, location
    #vsTestVersion: 'latest' # Optional. Options: latest, 16.0, 15.0, 14.0, toolsInstaller
    #vstestLocation: # Optional
    #runSettingsFile: # Optional
    #overrideTestrunParameters: # Optional
    #pathtoCustomTestAdapters: # Optional
    #runInParallel: False # Optional
    #runTestsInIsolation: False # Optional
    #codeCoverageEnabled: False # Optional
    #otherConsoleOptions: # Optional
    #distributionBatchType: 'basedOnTestCases' # Optional. Options: basedOnTestCases, basedOnExecutionTime, basedOnAssembly
    #batchingBasedOnAgentsOption: 'autoBatchSize' # Optional. Options: autoBatchSize, customBatchSize
    #customBatchSizeValue: '10' # Required when distributionBatchType == BasedOnTestCases && BatchingBasedOnAgentsOption == CustomBatchSize
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # Optional. Options: autoBatchSize, customTimeBatchSize
    #customRunTimePerBatchValue: '60' # Required when distributionBatchType == BasedOnExecutionTime && BatchingBasedOnExecutionTimeOption == CustomTimeBatchSize
    #dontDistribute: False # Optional
    #testRunTitle: # Optional
    #platform: # Optional
    #configuration: # Optional
    #publishRunAttachments: true # Optional
    #failOnMinTestsNotRun: false # Optional
    #minimumExpectedTests: '1' # Optional
    #diagnosticsEnabled: false # Optional
    #collectDumpOn: 'onAbortOnly' # Optional. Options: onAbortOnly, always, never
    #rerunFailedTests: False # Optional
    #rerunType: 'basedOnTestFailurePercentage' # Optional. Options: basedOnTestFailurePercentage, basedOnTestFailureCount
    #rerunFailedThreshold: '30' # Optional
    #rerunFailedTestCasesMaxLimit: '5' # Optional
    #rerunMaxAttempts: '3' # Optional

Argumentos

Argumento Descripción
testSelector
Selección de pruebas mediante
(Obligatorio) Ensamblado de prueba: Use esta opción para especificar uno o varios ensamblados de prueba que contengan las pruebas. Opcionalmente, puede especificar un criterio de filtro para seleccionar solo pruebas específicas.
Plan de prueba: Use esta opción para ejecutar pruebas desde el plan de pruebas que tengan asociado un método de prueba automatizado. Para obtener más información sobre cómo asociar pruebas a un elemento de trabajo de caso de prueba, consulte Asociación de pruebas automatizadas con casos de prueba.
Ejecución de prueba: Use esta opción cuando esté configurando un entorno para ejecutar pruebas desde planes de prueba. Esta opción no debe usarse al ejecutar pruebas en una canalización de integración continua/implementación continua (CI/CD).
Valor predeterminado: testAssemblies
testAssemblyVer2
Archivos de prueba
(Obligatorio) Ejecute pruebas desde los archivos especificados. Las pruebas ordenadas y las pruebas web se pueden ejecutar especificando los .orderedtest archivos .webtest y respectivamente. Para ejecutar .webtest , Visual Studio 2017 Update 4 o posterior es necesario. Las rutas de acceso de archivo son relativas a la carpeta de búsqueda. Admite varias líneas de patrones de minimatch. Más información
Valor predeterminado: **\\*test*.dll\n!**\\*TestAdapter.dll\n!**\\obj\\**
testPlan
Plan de pruebas
(Obligatorio) Seleccione un plan de prueba que contenga conjuntos de pruebas con casos de prueba automatizados.
testSuite
Conjunto de pruebas
(Obligatorio) Seleccione uno o varios conjuntos de pruebas que contengan casos de prueba automatizados. Los elementos de trabajo del caso de prueba deben estar asociados a un método de prueba automatizado. Más información.
testConfiguration
Configuración de prueba
(Obligatorio) Seleccione Configuración de prueba.
tcmTestRun
Serie de pruebas
(Opcional) La selección basada en la ejecución de pruebas se usa al desencadenar ejecuciones de prueba automatizadas desde planes de prueba. Esta opción no se puede usar para ejecutar pruebas en la canalización de CI/CD.
searchFolder
Carpeta de Búsqueda
(Obligatorio) Carpeta en la que se buscarán los ensamblados de prueba.
testFiltercriteria
Criterios de filtro de prueba
(Opcional) Criterios adicionales para filtrar pruebas de ensamblados de prueba.
Por ejemplo: Priority=1|Name=MyTestMethod. Más información
runOnlyImpactedTests
Ejecutar solo pruebas afectadas
(Opcional) Seleccione y ejecute automáticamente solo las pruebas necesarias para validar el cambio de código. Más información
runAllTestsAfterXBuilds
Número de compilaciones después de las cuales se deben ejecutar todas las pruebas
(Opcional) Número de compilaciones después de las cuales se ejecutarán automáticamente todas las pruebas. Análisis de impacto de prueba almacena la asignación entre los casos de prueba y el código fuente. Se recomienda volver a generar la asignación mediante la ejecución de todas las pruebas de forma periódica.
uiTests
Combinación de pruebas que contiene pruebas de IU
(Opcional) Para ejecutar pruebas de IU, asegúrese de que el agente está configurado para ejecutarse en modo interactivo con el inicio de sesión automático habilitado. La configuración de un agente para que se ejecute de forma interactiva debe realizarse antes de poner en cola la compilación o la versión. Al marcar esta casilla, el agente no se configura automáticamente en modo interactivo. Esta opción de la tarea es servir solo como recordatorio para configurar el agente adecuadamente para evitar errores. Los agentes Windows hospedados de los grupos de VS 2015 y 2017 se pueden usar para ejecutar pruebas de IU.
vstestLocationMethod
Selección de la plataforma de prueba mediante
(Opcional) Especifique qué plataforma de prueba se debe usar.
vsTestVersion
Versión de la plataforma de pruebas
(Opcional) La versión de Visual Studio que se usará. Si se especifica latest, elige Visual Studio 2017 o Visual Studio 2015 en función de lo que esté instalado. Visual Studio 2013 no se admite. Para ejecutar pruebas sin necesidad Visual Studio en el agente, use la opción en la interfaz de usuario o Installed by tools installer herramientasInstalador en YAML. Asegúrese de incluir la tarea instalador Visual Studio plataforma de prueba para adquirir la plataforma ‘’ de prueba de NuGet.
vstestLocation
Ruta de acceso a vstest.console.exe
(Opcional) Especifique la ruta de acceso a VSTest.
runSettingsFile
Archivo de configuración
(Opcional) Ruta de runsettings acceso al archivo o que se usará con las testsettings pruebas. A partir Visual Studio 15.7, se recomienda usar runsettings para todos los tipos de pruebas. Para obtener más información sobre cómo convertir un archivo .testsettings en un archivo .runsettings, vea este tema.
overrideTestrunParameters
Invalidar parámetros de ejecución de prueba
(Opcional) Invalide los parámetros definidos en la sección TestRunParameters del archivo runsettings o la sección Propiedades del archivo testsettings.
Por ejemplo: -key1 value1 -key2 value2. Nota: Se puede acceder a las propiedades especificadas en el archivo a través de TestContext Visual Studio 2017 Update 4 o posterior
pathtoCustomTestAdapters
Ruta de acceso a adaptadores de prueba personalizados
(Opcional) Ruta de acceso del directorio a adaptadores de prueba personalizados. Los adaptadores que residen en la misma carpeta que los ensamblados de prueba se detectan automáticamente.
runInParallel
Ejecución de pruebas en paralelo en máquinas de varios núcleos
(Opcional) Si se establece, las pruebas se ejecutarán en paralelo aprovechando los núcleos disponibles de la máquina. Esto invalidará MaxCpuCount si se especifica en el archivo runsettings. Haga clic aquí para obtener más información sobre cómo se ejecutan las pruebas en paralelo.
runTestsInIsolation
Ejecución de pruebas de forma aislada
(Opcional) Ejecuta las pruebas en un proceso aislado. Esto hace que el proceso sea menos probable que se detenga en caso de error en las pruebas, pero es posible que las vstest.console.exe pruebas se ejecuten más lentamente. Actualmente, esta opción no se puede usar cuando se ejecuta con la configuración de trabajo de varios agentes.
codeCoverageEnabled
Cobertura de código habilitada
(Opcional) Recopile información de cobertura de código de la ejecución de prueba.
otherConsoleOptions
Otras opciones de consola
(Opcional) Otras opciones de consola que se pueden pasar vstest.console.exe a , como se documenta vstest.console.exe Estas opciones no se admiten y se omitirán al ejecutar pruebas mediante la configuración en paralelo Multi agent de un trabajo del agente o al ejecutar pruebas mediante la opción Plan de prueba. Las opciones se pueden especificar mediante un archivo de configuración en su lugar.
distributionBatchType
Pruebas por lotes
(Opcional) Un lote es un grupo de pruebas. Un lote de pruebas ejecuta sus pruebas al mismo tiempo y los resultados se publican para el lote. Si el trabajo en el que se ejecuta la tarea está establecido para usar varios agentes, cada agente recoge los lotes de pruebas disponibles para ejecutarse en paralelo.
En función del número de pruebas y agentes: Procesamiento por lotes sencillo en función del número de pruebas y agentes que participan en la ejecución de pruebas.
En función del tiempo de ejecución anterior de las pruebas: Este procesamiento por lotes tiene en cuenta el tiempo de ejecución pasado para crear lotes de pruebas de modo que cada lote tenga aproximadamente el mismo tiempo de ejecución.
En función de los ensamblados de prueba: Las pruebas de un ensamblado se realizan por lotes juntos".
Valor predeterminado: basedOnTestCases
batchingBasedOnAgentsOption
Opciones de Batch
(Opcional) Procesamiento por lotes sencillo en función del número de pruebas y agentes que participan en la ejecución de pruebas. Cuando se determina automáticamente el tamaño del lote, cada lote contiene (total number of tests / number of agents) pruebas. Si se especifica un tamaño de lote, cada lote contendrá el número especificado de pruebas.
Valor predeterminado: autoBatchSize
customBatchSizeValue
Número de pruebas por lote
(Obligatorio) Especificación del tamaño del lote
Valor predeterminado: 10
batchingBasedOnExecutionTimeOption
Opciones de Batch
(Opcional) Este procesamiento por lotes tiene en cuenta el tiempo de ejecución pasado para crear lotes de pruebas de modo que cada lote tenga aproximadamente el mismo tiempo de ejecución. Las pruebas de ejecución rápida se procesarán por lotes juntos, mientras que las pruebas de ejecución más larga pueden pertenecer a un lote independiente. Cuando esta opción se usa con la configuración del trabajo de varios agentes, el tiempo total de prueba se reduce al mínimo.
Valor predeterminado: autoBatchSize
customRunTimePerBatchValue
Tiempo de ejecución (s) por lote
(Obligatorio) Especificar el tiempo de ejecución (s) por lote
Valor predeterminado: 60
dontDistribute
Replicación de pruebas en lugar de distribuir cuando se usan varios agentes en el trabajo
(Opcional) Al elegir esta opción no se distribuirán las pruebas entre agentes cuando la tarea se ejecuta en un trabajo de varios agentes.
Cada una de las pruebas seleccionadas se repetirá en cada agente.
La opción no es aplicable cuando el trabajo del agente está configurado para ejecutarse sin paralelismo o con la opción de configuración múltiple.
Valor predeterminado: False
testRunTitle
Título de la ejecución de prueba
(Opcional) Proporcione un nombre para la ejecución de pruebas.
platform
Plataforma de compilación
(Opcional) Cree la plataforma en la que se deben informar las pruebas. Si ha definido una variable para la plataforma en la tarea de compilación, úsima aquí.
configuration
Configuración de compilación
(Opcional) Configuración de compilación con la que se deben informar las pruebas. Si ha definido una variable para la configuración en la tarea de compilación, úsela aquí.
publishRunAttachments
Upload datos adjuntos de prueba
(Opcional) Participar o no en la publicación de datos adjuntos de nivel de ejecución.
Valor predeterminado: true
failOnMinTestsNotRun
Error en la tarea si no se ejecuta un número mínimo de pruebas
(Opcional) Use esta opción para producir un error en la tarea si no se ejecuta un número mínimo de pruebas. Esto puede ser útil si cualquier cambio en las entradas de tareas o en las dependencias del adaptador de prueba subyacente conduce a que solo se pueda encontrar un subconjunto de las pruebas deseadas.
Valor predeterminado: False
minimumExpectedTests
Número mínimo de pruebas
(Opcional) Especifique el número mínimo de pruebas que se deben ejecutar para que la tarea se ejecute correctamente. La ejecución total de pruebas se calcula como la suma de las pruebas superadas, con errores y anuladas.
Valor predeterminado: 1
diagnosticsEnabled
Recopilación de diagnósticos avanzados en caso de errores catastróficos
(Opcional) Use esta opción para activar la recopilación de datos de diagnóstico para solucionar errores catastróficos, como el bloqueo de pruebas.
Cuando se activa esta opción, se genera un archivo XML de secuencia y se adjunta a la ejecución de pruebas. El archivo de secuencia contiene información sobre la secuencia en la que se han ejecutado las pruebas, de modo que se pueda identificar una prueba potencialmente responsable.
Valor predeterminado: false
collectDumpOn
Recopilación del volcado de proceso y asociación al informe de ejecución de pruebas
(Opcional) Use esta opción para recopilar un minivolcar que se puede usar para un análisis posterior.
Solo en caso de anulación:el minivolcar se recopilará solo cuando se anule la ejecución de prueba.
Siempre:el minivolcar siempre se recopilará independientemente de si la ejecución de prueba se completa o no.
Nunca:el minivolcar no se recopilará independientemente de si la ejecución de prueba se completa o no.
rerunFailedTests
Volver a ejecutar pruebas con errores
(Opcional) Al seleccionar esta opción, se volverán a ejecutar las pruebas con errores hasta que se pasen o se alcance el número máximo de intentos.
Valor predeterminado: False
rerunType
No volver a ejecutar si los errores de prueba superan el umbral especificado
(Opcional) Use esta opción para evitar volver a ejecutar las pruebas cuando la tasa de errores cruza el umbral especificado. Esto es aplicable si algún problema del entorno conduce a errores masivos. Puede especificar % de errores con o número de pruebas con errores como basedOnTestFailurePercentage umbral con basedOnTestFailureCount.
Valor predeterminado: basedOnTestFailurePercentage
rerunFailedThreshold
% de error
(Opcional) Use esta opción para evitar volver a ejecutar las pruebas cuando la tasa de errores cruza el umbral especificado. Esto es aplicable si algún problema del entorno conduce a errores masivos
Valor predeterminado: 30
rerunFailedTestCasesMaxLimit
Número de pruebas con error
(Opcional) Use esta opción para evitar volver a ejecutar las pruebas cuando el número de casos de prueba con error cruza el límite especificado. Esto es aplicable si algún problema del entorno conduce a errores masivos y si rerunType se vuelve a ejecutarFailedTestCasesMaxLimit.
Valor predeterminado: 5
rerunMaxAttempts
Número máximo de intentos
(Opcional) Especifique el número máximo de veces que se debe volver a probar una prueba con errores. Si una prueba se supera antes de que se alcance el número máximo de intentos, no se volverá a ejecutar más.
Valor predeterminado: 3

Código Abierto

Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.

Preguntas más frecuentes

¿Cómo puedo ejecutar pruebas que usan TestCase como origen de datos?

Para ejecutar pruebas automatizadas que usan TestCase como origen de datos, se necesita lo siguiente:

  1. Debe tener Visual Studio 2017.6 o posterior en la máquina del agente. Visual Studio la tarea Instalador de la plataforma de pruebas no se puede usar para ejecutar pruebas que usan TestCase como origen de datos.

  2. Cree un PAT que esté autorizado para el ámbito Elementos de trabajo (completos). ”

  3. Agregue una variable de compilación o versión segura denominada Test.TestCaseAccessToken con el valor establecido en el PAT creado en el paso anterior.

Tengo problemas al ejecutar pruebas xUnit y NUnit controladas por datos con algunas de las opciones de tarea. ¿Existen limitaciones conocidas?

Las pruebas controladas por datos que usan marcos de pruebas xUnit y NUnit tienen algunas limitaciones conocidas y no se pueden usar con las siguientes opciones de tarea:

  1. Vuelva a ejecutar las pruebas con errores.

  2. Distribución de pruebas en varios agentes y opciones de procesamiento por lotes.

  3. Análisis de impacto de las pruebas

Las limitaciones anteriores se debe a la forma en que los adaptadores de estos marcos de prueba detectan y informan de pruebas controladas por datos.