Compartir a través de


VSTest@3 - Visual Studio Tarea de prueba v3

Utiliza esta tarea para ejecutar pruebas unitarias y funcionales (Selenium, Appium, coded UI test, etc.) usando el ecuador de Visual Studio Test (VSTest). Puedes ejecutar frameworks de prueba que tengan un adaptador de prueba de Visual Studio. Los marcos de ejemplo son MSTest, xUnit, NUnit, Chutzpah (para pruebas de JavaScript con QUnit, Mocha y Jasmine), etc. Las pruebas se pueden distribuir en varios agentes mediante esta tarea.

Nota

VSTest@3 es la versión más reciente de la tarea y debe usarse en las canalizaciones.

Nota

La tarea VSTest@3 puede volver a ejecutar pruebas fallidas basadas en datos, solo con parámetros estáticos y sin displayName personalizado, para los frameworks MsTest, xUnit y nUnit.

Nota

La tarea VSTest Azure es específica para VSTest-platform. No es compatible con la versión más reciente de Microsoft.Testing.Platform (MTP).

La tarea DotNetCoreCLI@2 soporta la Microsoft.Testing.Platform (MTP). Para más información, véase Microsoft.Testing.Platform Now Fully Supported in Azure DevOps.

Sintaxis

# Visual Studio Test v3
# 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 and later).
- task: VSTest@3
  inputs:
    #azureSubscription: # string. Alias: ConnectedServiceName. Azure Resource Manager connection. 
  # Test selection
    testSelector: 'testAssemblies' # 'testAssemblies' | 'testPlan' | 'testRun'. Required. Select tests using. Default: testAssemblies.
    testAssemblyVer2: # string. Required when testSelector = testAssemblies. Test files. 
    #testPlan: # string. Required when testSelector = testPlan. Test plan. 
    #testSuite: # string. Required when testSelector = testPlan. Test suite. 
    #testConfiguration: # string. Required when testSelector = testPlan. Test configuration. 
    #tcmTestRun: '$(test.RunId)' # string. Optional. Use when testSelector = testRun. Test Run. Default: $(test.RunId).
    searchFolder: '$(System.DefaultWorkingDirectory)' # string. Required. Search folder. Default: $(System.DefaultWorkingDirectory).
    #resultsFolder: '$(Agent.TempDirectory)\TestResults' # string. Test results folder. Default: $(Agent.TempDirectory)\TestResults.
    #testFiltercriteria: # string. Optional. Use when testSelector = testAssemblies. Test filter criteria. 
    #runOnlyImpactedTests: False # boolean. Optional. Use when testSelector = testAssemblies. Run only impacted tests. Default: False.
    #runAllTestsAfterXBuilds: '50' # string. Optional. Use when testSelector = testAssemblies && runOnlyImpactedTests = true. Number of builds after which all tests should be run. Default: 50.
    #uiTests: false # boolean. Test mix contains UI tests. Default: false.
  # Execution options
    #vstestLocationMethod: 'version' # 'version' | 'location'. Select test platform using. Default: version.
    #vsTestVersion: 'latest' # 'latest' | '18.0' | '17.0' | '16.0' | '15.0' | '14.0' | 'toolsInstaller'. Optional. Use when vstestLocationMethod = version. Test platform version. Default: latest.
    #vstestLocation: # string. Optional. Use when vstestLocationMethod = location. Path to vstest.console.exe. 
    #runSettingsFile: # string. Settings file. 
    #overrideTestrunParameters: # string. Override test run parameters. 
    #pathtoCustomTestAdapters: # string. Path to custom test adapters. 
    #runInParallel: False # boolean. Run tests in parallel on multi-core machines. Default: False.
    #runTestsInIsolation: False # boolean. Run tests in isolation. Default: False.
    #codeCoverageEnabled: False # boolean. Code coverage enabled. Default: False.
    #otherConsoleOptions: # string. Other console options. 
    #diagnosticsEnabled: false # boolean. Collect advanced diagnostics in case of catastrophic failures. Default: false.
    #collectDumpOn: 'onAbortOnly' # 'onAbortOnly' | 'always' | 'never'. Optional. Use when diagnosticsEnabled = true. Collect process dump and attach to test run report. Default: onAbortOnly.
    #rerunFailedTests: False # boolean. Rerun failed tests. Default: False.
    #rerunType: 'basedOnTestFailurePercentage' # 'basedOnTestFailurePercentage' | 'basedOnTestFailureCount'. Optional. Use when rerunFailedTests = true. Do not rerun if test failures exceed specified threshold. Default: basedOnTestFailurePercentage.
    #rerunFailedThreshold: '30' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. % failure. Default: 30.
    #rerunFailedTestCasesMaxLimit: '5' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailureCount. # of failed tests. Default: 5.
    #rerunMaxAttempts: '3' # string. Optional. Use when rerunFailedTests = true. Maximum # of attempts. Default: 3.
  # Advanced execution options
    #distributionBatchType: 'basedOnTestCases' # 'basedOnTestCases' | 'basedOnExecutionTime' | 'basedOnAssembly'. Batch tests. Default: basedOnTestCases.
    #batchingBasedOnAgentsOption: 'autoBatchSize' # 'autoBatchSize' | 'customBatchSize'. Optional. Use when distributionBatchType = basedOnTestCases. Batch options. Default: autoBatchSize.
    #customBatchSizeValue: '10' # string. Required when distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Number of tests per batch. Default: 10.
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # 'autoBatchSize' | 'customTimeBatchSize'. Optional. Use when distributionBatchType = basedOnExecutionTime. Batch options. Default: autoBatchSize.
    #customRunTimePerBatchValue: '60' # string. Required when distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Running time (sec) per batch. Default: 60.
    #dontDistribute: False # boolean. Replicate tests instead of distributing when multiple agents are used in the job. Default: False.
  # Reporting options
    #testRunTitle: # string. Test run title. 
    #platform: # string. Build platform. 
    #configuration: # string. Build configuration. 
    #publishRunAttachments: true # boolean. Upload test attachments. Default: true.
    #donotPublishTestResults: false # boolean. Optional. Use when runInParallel = false. Disable publishing test results. Default: false.
    #failOnMinTestsNotRun: False # boolean. Fail the task if a minimum number of tests are not run. Default: False.
    #minimumExpectedTests: '1' # string. Optional. Use when failOnMinTestsNotRun = true. Minimum # of tests. Default: 1.
# Visual Studio Test v3
# 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 and later).
- task: VSTest@3
  inputs:
    #azureSubscription: # string. Alias: ConnectedServiceName. Azure Resource Manager connection. 
  # Test selection
    testSelector: 'testAssemblies' # 'testAssemblies' | 'testPlan' | 'testRun'. Required. Select tests using. Default: testAssemblies.
    testAssemblyVer2: # string. Required when testSelector = testAssemblies. Test files. 
    #testPlan: # string. Required when testSelector = testPlan. Test plan. 
    #testSuite: # string. Required when testSelector = testPlan. Test suite. 
    #testConfiguration: # string. Required when testSelector = testPlan. Test configuration. 
    #tcmTestRun: '$(test.RunId)' # string. Optional. Use when testSelector = testRun. Test Run. Default: $(test.RunId).
    searchFolder: '$(System.DefaultWorkingDirectory)' # string. Required. Search folder. Default: $(System.DefaultWorkingDirectory).
    #resultsFolder: '$(Agent.TempDirectory)\TestResults' # string. Test results folder. Default: $(Agent.TempDirectory)\TestResults.
    #testFiltercriteria: # string. Optional. Use when testSelector = testAssemblies. Test filter criteria. 
    #runOnlyImpactedTests: False # boolean. Optional. Use when testSelector = testAssemblies. Run only impacted tests. Default: False.
    #runAllTestsAfterXBuilds: '50' # string. Optional. Use when testSelector = testAssemblies && runOnlyImpactedTests = true. Number of builds after which all tests should be run. Default: 50.
    #uiTests: false # boolean. Test mix contains UI tests. Default: false.
  # Execution options
    #vstestLocationMethod: 'version' # 'version' | 'location'. Select test platform using. Default: version.
    #vsTestVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | 'toolsInstaller'. Optional. Use when vstestLocationMethod = version. Test platform version. Default: latest.
    #vstestLocation: # string. Optional. Use when vstestLocationMethod = location. Path to vstest.console.exe. 
    #runSettingsFile: # string. Settings file. 
    #overrideTestrunParameters: # string. Override test run parameters. 
    #pathtoCustomTestAdapters: # string. Path to custom test adapters. 
    #runInParallel: False # boolean. Run tests in parallel on multi-core machines. Default: False.
    #runTestsInIsolation: False # boolean. Run tests in isolation. Default: False.
    #codeCoverageEnabled: False # boolean. Code coverage enabled. Default: False.
    #otherConsoleOptions: # string. Other console options. 
    #diagnosticsEnabled: false # boolean. Collect advanced diagnostics in case of catastrophic failures. Default: false.
    #collectDumpOn: 'onAbortOnly' # 'onAbortOnly' | 'always' | 'never'. Optional. Use when diagnosticsEnabled = true. Collect process dump and attach to test run report. Default: onAbortOnly.
    #rerunFailedTests: False # boolean. Rerun failed tests. Default: False.
    #rerunType: 'basedOnTestFailurePercentage' # 'basedOnTestFailurePercentage' | 'basedOnTestFailureCount'. Optional. Use when rerunFailedTests = true. Do not rerun if test failures exceed specified threshold. Default: basedOnTestFailurePercentage.
    #rerunFailedThreshold: '30' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. % failure. Default: 30.
    #rerunFailedTestCasesMaxLimit: '5' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailureCount. # of failed tests. Default: 5.
    #rerunMaxAttempts: '3' # string. Optional. Use when rerunFailedTests = true. Maximum # of attempts. Default: 3.
  # Advanced execution options
    #distributionBatchType: 'basedOnTestCases' # 'basedOnTestCases' | 'basedOnExecutionTime' | 'basedOnAssembly'. Batch tests. Default: basedOnTestCases.
    #batchingBasedOnAgentsOption: 'autoBatchSize' # 'autoBatchSize' | 'customBatchSize'. Optional. Use when distributionBatchType = basedOnTestCases. Batch options. Default: autoBatchSize.
    #customBatchSizeValue: '10' # string. Required when distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Number of tests per batch. Default: 10.
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # 'autoBatchSize' | 'customTimeBatchSize'. Optional. Use when distributionBatchType = basedOnExecutionTime. Batch options. Default: autoBatchSize.
    #customRunTimePerBatchValue: '60' # string. Required when distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Running time (sec) per batch. Default: 60.
    #dontDistribute: False # boolean. Replicate tests instead of distributing when multiple agents are used in the job. Default: False.
  # Reporting options
    #testRunTitle: # string. Test run title. 
    #platform: # string. Build platform. 
    #configuration: # string. Build configuration. 
    #publishRunAttachments: true # boolean. Upload test attachments. Default: true.
    #donotPublishTestResults: false # boolean. Optional. Use when runInParallel = false. Disable publishing test results. Default: false.
    #failOnMinTestsNotRun: False # boolean. Fail the task if a minimum number of tests are not run. Default: False.
    #minimumExpectedTests: '1' # string. Optional. Use when failOnMinTestsNotRun = true. Minimum # of tests. Default: 1.

Entradas

azureSubscription - Azure Resource Manager conexión
Alias de entrada: . .

Especifique una conexión de servicio Azure Resource Manager configurada con la federación de identidad de carga de trabajo para usar AzurePipelinesCredential en pruebas de integración. Para más información, consulte Uso de AzurePipelinesCredential en pruebas de integración.

Nota

Esta entrada solo admite conexiones de servicio arm configuradas para usar la federación de identidades de carga de trabajo.


Seleccionar pruebas mediante
. Obligatorio. Valores permitidos: (ensamblados de prueba), (plan de prueba), (ejecución de pruebas). Valor predeterminado: .

  • Ensamblado de prueba: Especifica uno o varios ensamblados de prueba que contienen las pruebas. Opcionalmente, puede especificar un criterio de filtro para seleccionar solo pruebas específicas.
  • plan de pruebas: ejecuta pruebas del plan de pruebas que tienen asociado un método de prueba automatizado. Para obtener más información sobre cómo asociar pruebas a un elemento de trabajo de casos de prueba, consulte Asociar pruebas automatizadas con casos de prueba.
  • Ejecución de pruebas: Use esta opción cuando configure un entorno para ejecutar pruebas desde planes de prueba. Esta opción no se debe usar al ejecutar pruebas en una canalización de integración continua o implementación continua (CI/CD).

de archivos de prueba
. Obligatorio cuando . Valor predeterminado: .

Ejecuta pruebas a partir de los archivos especificados. Las pruebas ordenadas y las pruebas web se pueden ejecutar especificando los archivos y respectivamente. Para ejecutar .webtest, se necesita Visual Studio actualización 4 de 2017 o superior. Las rutas de acceso de archivo son relativas a la carpeta de búsqueda. Esta entrada admite varias líneas de patrones de minimatch .

# Example
- task: VSTest@3
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\*test*.dll
      !**\*TestAdapter.dll
      !**\obj\**

de plan de prueba de
. Obligatorio cuando .

Especifica un plan de prueba que contiene conjuntos de pruebas con casos de prueba automatizados.


del conjunto de pruebas de
. Obligatorio cuando .

Especifica uno o varios conjuntos de pruebas que contienen casos de prueba automatizados. Los elementos de trabajo del caso de prueba deben estar asociados a un método de prueba automatizado .


de configuración de prueba
. Obligatorio cuando .

Especifica la configuración de prueba.


de ejecución de pruebas
. Opcional. Use cuando . Valor predeterminado: .

Especifica la selección basada en la ejecución de pruebas que se usa al desencadenar ejecuciones de pruebas automatizadas desde planes de prueba. Esta opción no se puede usar para ejecutar pruebas en la canalización de CI/CD.


de carpeta de búsqueda de
. Obligatorio. Valor predeterminado: .

Especifica la carpeta que se va a buscar los ensamblados de prueba.


carpeta de resultados de pruebas de
. Valor predeterminado: .

Especifica la carpeta para almacenar los resultados de las pruebas. Cuando se usa el directorio predeterminado, se limpia al final de una ejecución de canalización. El directorio de resultados siempre se limpiará al principio de la tarea antes de ejecutar las pruebas. La ruta de acceso de carpeta relativa, si se proporciona, se considerará relativa a .


criterios de filtro de prueba
. Opcional. Use cuando .

Especifica criterios adicionales para filtrar las pruebas de los ensamblados de prueba. Por ejemplo: . Puede usarlo para negar un filtro. Para obtener más información sobre los filtros y las opciones, consulte Buscar y filtrar la lista de pruebas.

Obtenga información sobre opciones de línea de comandos.


Ejecutar solo pruebas afectadas
. Opcional. Use cuando . Valor predeterminado: .

Especifica y ejecuta automáticamente las pruebas necesarias para validar el cambio de código. Obtenga información sobre cómo usar análisis de impacto de pruebas.


Número de compilaciones después de las cuales se deben ejecutar todas las pruebas
. Opcional. Use cuando . Valor predeterminado: .

Especifica el número de compilaciones que se van a ejecutar antes de que se ejecuten automáticamente todas las pruebas. Test Impact Analysis almacena la asignación entre casos de prueba y código fuente. Se recomienda volver a generar la asignación ejecutando todas las pruebas periódicamente.


Combinación de pruebas contiene pruebas de IU
. Valor predeterminado: .

Para ejecutar pruebas de IU, asegúrese de que el agente está establecido para ejecutarse en modo interactivo con Autologon 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 versión. Al activar esta casilla no se configura automáticamente el agente en modo interactivo. Esta opción sirve como recordatorio para configurar el agente adecuadamente para evitar errores. Los agentes de Windows alojados de los pools VS 2015 y 2017 pueden usarse para ejecutar pruebas de interfaz.


Seleccionar plataforma de prueba mediante
. Valores permitidos: , (ubicación específica). Valor predeterminado: .

Especifica la plataforma de prueba que se va a usar.


versión de la plataforma de prueba de
. Opcional. Use cuando . Valores permitidos: latest, 18.0 (Visual Studio 2026), 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (instalado por Tools Installer). Valor predeterminado: .

Especifica la versión de Visual Studio Test que debe utilizar. Si se especifica más reciente, esta entrada elige la versión más reciente (en la lista de valores permitidos) instalada. Para ejecutar pruebas sin necesidad de Visual Studio en el agente, usa la opción Instalado por herramientas instalador. Asegúrate de incluir la tarea Visual Studio Test Platform Installer para adquirir la plataforma de prueba de NuGet.


versión de la plataforma de prueba de
. Opcional. Use cuando . Valores permitidos: latest, 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (instalado por Tools Installer). Valor predeterminado: .

Especifica la versión de Visual Studio Test que debe utilizar. Si se especifica más reciente, esta entrada elige la versión más reciente (en la lista de valores permitidos) instalada. Para ejecutar pruebas sin necesidad de Visual Studio en el agente, usa la opción Instalado por herramientas instalador. Asegúrate de incluir la tarea Visual Studio Test Platform Installer para adquirir la plataforma de prueba de NuGet.


ruta de acceso de a vstest.console.exe
. Opcional. Use cuando .

Especifica la ruta de acceso a VSTest.


archivo de configuración de
.

Especifica la ruta de acceso a un archivo o que se va a usar con las pruebas. Para Visual Studio 15,7 o superiores, utilice runsettings para todos los tipos de prueba. Obtenga más información sobre convertir un archivo de en un archivo .


Invalidar parámetros de ejecución de pruebas
.

Invalida los parámetros definidos en la sección de un archivo o la sección de un archivo . Por ejemplo: . Nota: Las propiedades especificadas en un archivo testsettings pueden accederse a través del TestContext usando Visual Studio 2017 (actualización 4 o superior).


Ruta de acceso a adaptadores de prueba personalizados
.

Especifica la 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.


Ejecutar pruebas en paralelo en máquinas de varios núcleos
. Valor predeterminado: .

Si se establece en , las pruebas se ejecutan en paralelo y aprovechan los núcleos disponibles de la máquina. Esto invalidará el si se especifica en el archivo . Obtenga más información sobre cómo se ejecutan las pruebas de en paralelo.


Ejecutar pruebas de forma aislada
. Valor predeterminado: .

Ejecuta las pruebas en un proceso aislado. Esto probablemente conduce a menos errores en el proceso de prueba de vstest.console.exe, pero las pruebas pueden ejecutarse más lentamente. Esta opción no se puede usar actualmente al ejecutarse con la configuración de trabajo multiagente.


cobertura de código habilitada
. Valor predeterminado: .

Recopila información de cobertura de código de la ejecución de pruebas.


otras opciones de consola
.

Otras opciones de consola que se pueden pasar a vstest.console.exe.

Estas opciones no se admiten y se omitirán cuando se ejecuten pruebas mediante el configuración de paralelo multiagente de un trabajo de agente, al ejecutar pruebas con el plan de pruebas de o opción Ejecución de pruebas, o cuando se selecciona una opción de procesamiento por lotes personalizada. Las opciones se pueden especificar mediante un archivo de configuración en su lugar.


de pruebas de Batch
. Valores permitidos: (en función del número de pruebas y agentes), (según el tiempo de ejecución anterior de las pruebas), (basado en ensamblados de prueba). Valor predeterminado: .

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 se establece para usar varios agentes, cada agente recoge los lotes de pruebas disponibles para ejecutarse en paralelo. Se puede ejecutar un lote:

en función del número de pruebas y agentes. Procesamiento por lotes sencillo basado en el 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 considera el tiempo de ejecución pasado para crear lotes de pruebas en los que cada lote tiene aproximadamente el mismo tiempo de ejecución.

basado en ensamblados de prueba. Las pruebas de un ensamblado se agrupan por lotes.


opciones de Batch
. Opcional. Use cuando . Valores permitidos: (determinar automáticamente el tamaño del lote), (especificar un tamaño de lote). Valor predeterminado: .

Especifica el procesamiento por lotes simple 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 pruebas. Si se especifica un tamaño de lote, cada lote contendrá el número especificado de pruebas.


Número de pruebas por lote
. Obligatorio cuando . Valor predeterminado: .

Especifica el tamaño del lote.


opciones de Batch
. Opcional. Use cuando . Valores permitidos: (determinar automáticamente el tiempo del lote), (especificar tiempo de ejecución por lote). Valor predeterminado: .

Este procesamiento por lotes considera tiempos de ejecución anteriores para crear lotes de pruebas en los que cada lote tiene aproximadamente el mismo tiempo de ejecución. Las pruebas de ejecución rápida se procesarán por lotes, mientras que las pruebas de ejecución prolongada pueden pertenecer a un lote independiente. Cuando esta opción se usa con la configuración de trabajo multiagente, el tiempo total de prueba se reduce a un mínimo.


tiempo de ejecución (s) por por lote
. Obligatorio cuando . Valor predeterminado: .

Especifica el tiempo de ejecución (en segundos) por lote.


Replicar pruebas en lugar de distribuirse cuando se usan varios agentes en el trabajo
. Valor predeterminado: .

Si elige esta opción, no distribuirá las pruebas entre agentes cuando la tarea se ejecute en un trabajo de varios agentes. Cada una de las pruebas seleccionadas se repetirá en cada agente. Esta opción no es aplicable cuando el trabajo del agente está configurado para ejecutarse sin paralelismo ni con la opción de configuración múltiple.


título de ejecución de pruebas
.

Especifica un nombre para la ejecución de pruebas.


de la plataforma de compilación
.

Especifica la plataforma de compilación en la que se deben notificar las pruebas. Si ha definido una variable para la plataforma en la tarea de compilación, úselo con esta entrada.


de configuración de compilación
.

Especifica la configuración de compilación con la que se deben notificar las pruebas. Si ha definido una variable para la configuración en la tarea de compilación, úselo con esta entrada.


Carga de datos adjuntos de prueba
. Valor predeterminado: .

Participar o no publicar datos adjuntos de nivel de ejecución.


Deshabilitar la publicación de resultados de pruebas
. Opcional. Use cuando . Valor predeterminado: .

Si esta opción está activada, los resultados de las pruebas no se publicarán como parte de esta tarea. En su lugar, utilice la tarea Publicar resultados de pruebas.


Error en la tarea si no se ejecuta un número mínimo de pruebas.
. Valor predeterminado: .

Produce un error en la tarea si no se ejecuta un número mínimo de pruebas. Esto puede ser útil si algún cambio en las entradas de tareas o las dependencias del adaptador de prueba subyacentes solo conduce a un subconjunto de las pruebas deseadas que se van a encontrar.


número mínimo de pruebas
. Opcional. Use cuando . Valor predeterminado: .

Especifica el número mínimo de pruebas que se van a ejecutar para que la tarea se realice correctamente. El total de pruebas ejecutadas se calcula como la suma de las pruebas superadas, con errores y anuladas.


Recopilar diagnósticos avanzados en caso de errores catastróficos
. Valor predeterminado: .

Recopila datos de diagnóstico para solucionar errores catastróficos, como un bloqueo de prueba. 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, por lo que se puede identificar una posible prueba culpable.


Recopilar volcado de proceso y adjuntarlo a de ejecución de pruebas
. Opcional. Use cuando . Valores permitidos: (solo activado), , . Valor predeterminado: .

Recopila un mini volcado de memoria que se puede usar para realizar un análisis posterior.

  • onAbortOnly: solo se recopilará un mini volcado cuando se anule la ejecución de pruebas.
  • Siempre: siempre se recopilará un mini volcado de memoria independientemente de si la ejecución de la prueba se completa o no.
  • Nunca: no se recopilará un mini volcado independientemente de si la ejecución de la prueba se completa o no.

Volver a ejecutar pruebas con errores
. Valor predeterminado: .

Vuelve a ejecutar las pruebas con errores hasta que se superen o hasta que se alcance el número máximo de intentos.


No volver a ejecutar si los errores de prueba superan el umbral especificado
. Opcional. Use cuando . Valores permitidos: ( error de%), (número de pruebas con errores). Valor predeterminado: .

Evita volver a ejecutar las pruebas cuando la tasa de errores supera el umbral especificado. Esto es aplicable si los problemas del entorno provocan errores masivos. Puede especificar el porcentaje de errores o el número de pruebas con errores como umbral.


% error
. Opcional. Use cuando . Valor predeterminado: .

Evita volver a ejecutar las pruebas cuando el porcentaje de casos de prueba con errores supera el umbral especificado. Esto es aplicable si los problemas del entorno provocan errores masivos.


número de pruebas con errores
. Opcional. Use cuando . Valor predeterminado: .

Evita volver a ejecutar las pruebas cuando el número de casos de prueba con errores supera el límite especificado. Esto es aplicable si los problemas del entorno provocan errores masivos.


número máximo de intentos
. Opcional. Use cuando . Valor predeterminado: .

Especifica el número máximo de veces que se debe reintentar una prueba con error. Si se supera una prueba antes de alcanzar el número máximo de intentos, no volverá a ejecutarse.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Utiliza esta tarea para ejecutar pruebas unitarias y funcionales (Selenium, Appium, pruebas de interfaz codificada y más) usando el electorado de pruebas de Visual Studio. Junto con las pruebas basadas en MSTest, también se pueden ejecutar frameworks de prueba que cuentan con un adaptador de Visual Studio, como xUnit, NUnit o Chutzpah.

Las pruebas que el framework objetivo .NET core pueden ejecutarse especificando el valor correspondiente del framework objetivo en el archivo .runsettings.

Las pruebas se pueden distribuir en varios agentes mediante la versión 2 de esta tarea. Para más información, véase Ejecutar pruebas en paralelo usando la tarea Visual Studio Test.

Comprobación de los requisitos previos

Si usas un agente autoalojado de Windows, este requisito previo debe estar instalado:

Demandas

El agente debe tener la funcionalidad siguiente:

vstest

La demanda de vstest se puede satisfacer de dos maneras:

  1. Visual Studio está instalado en la máquina agente.
  2. Utilizando la tarea Visual Studio Instalador de Plataforma de Prueba en la definición de la pipeline.

¿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. Debes tener Visual Studio 2017.6 o superior en la máquina agente. La tarea del Instalador de la Plataforma de Pruebas de Visual Studio no puede usarse para ejecutar pruebas que utilicen TestCase como fuente 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 con el valor establecido en el PAT creado en el paso anterior.

¿Puedo usar esta tarea para pruebas basadas en datos (parametrizadas)?

Sí. La tarea solo soporta pruebas basadas en datos con parámetros estáticos y sin displayName personalizado. Es necesario que añadas una variable de entorno a tu pipeline:

  • Para MsTest:
  • Para xUnit:
  • Para nUnit:

Captura de pantalla de VSTest@3 variable de entorno para pruebas parametrizadas.

Me encuentro con problemas al ejecutar pruebas xUnit, NUnit y MSTest basadas en datos con algunas de las opciones de tareas. ¿Existen limitaciones conocidas?

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

  1. La reejecución de pruebas fallidas para MsTest, xUnit y nUnit funciona con pruebas basadas en datos que contienen parámetros estáticos.
  2. Distribución de pruebas en varios agentes y opciones de procesamiento por lotes.
  3. Análisis de impacto de prueba.

Las limitaciones anteriores se deben a cómo los adaptadores de estos marcos de pruebas detectan y notifican pruebas controladas por datos.

¿La tarea VSTest admite la ejecución de pruebas destinadas a varias plataformas de destino a la vez?

Sí, a partir de la versión VSTest admite la ejecución de pruebas destinadas a varias plataformas de destino a la vez. Antes de eso, esto no era posible debido a una limitación de plataforma VSTest lado.

Si quieres ejecutar pruebas que pertenezcan a múltiples frameworks objetivo, tendrás que instalar una versión compatible de VSTest a través de Visual Studio Test Platform Installer y configurar vsTestVersion en toolsInstaller para usarlo.

Al publicar el resultado de la prueba, obtención de este error: No se pudieron publicar los resultados de la prueba: ¿Se especificó prioridad no válida?

Este error se produce si alguno de los métodos de prueba tiene una prioridad establecida por encima de 255, corrija la prioridad del método de prueba en el código y vuelva a ejecutar las pruebas. Puede revisar el archivo trx generado para ver todas las pruebas que tienen prioridad superior a 255.

Uso de AzurePipelinesCredential en pruebas de integración

Las bibliotecas de identidad de Azure para .NET, C++, Go, Java, JavaScript y Python proporcionan soporte para la federación de identidad de carga de trabajo, de modo que el código ejecutado desde las tareas AzureCLI@2 y AzurePowerShell@5 puede autenticarse con Microsoft Entra ID (por ejemplo, para acceder Azure) usando la clase AzurePipelinesCredential.

Muchos clientes utilizan bibliotecas cliente de SDK de Azure en pruebas de integración invocadas desde otras tareas. Las tareas DotNetCoreCLI@2, Maven@4 y VSTest@3 pueden acceder a Azure recursos usando la clase AzurePipelinesCredential.

Puedes configurar la propiedad connectedServiceName como una conexión de servicio Azure configurada con la federación de identidad de carga de trabajo. El requiere que se establezca SYSTEM_ACCESSTOKEN.

En el ejemplo siguiente se muestra la entrada en la tarea . el uso de y es similar.

- task: DotNetCoreCLI@2
  inputs:
    command: 'run'
    connectedServiceName: <Azure service connection configured with workload identity federation>
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)

Para más información sobre AzurePipelinesCredential, consulte Mejorar la postura de seguridad en las conexiones de servicio Azure con AzurePipelinesCredential.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Los agentes autohospedados deben tener funcionalidades que coincidan con los siguientes exigen ejecutar trabajos que usen esta tarea: vstest
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquier
variables settable Cualquier
Versión del agente 2.144.0 o superior
Categoría de tarea Prueba