Compartir a través de


Introducción a las plataformas de prueba para .NET

En .NET, un marco de pruebas y una plataforma de prueba son diferentes componentes que funcionan juntos para detectar y ejecutar pruebas.

  • El marco de pruebas define el modelo de prueba contra el cual se escriben las pruebas, como MSTest, NUnit, xUnit.net o TUnit.
  • La plataforma de prueba ejecuta pruebas, se integra con los IDE y la CLI, y proporciona puntos de extensión compartidos.

Puede elegir entre dos plataformas de prueba:

  • VSTest
  • Microsoft.Testing.Platform (MTP)

Sugerencia

Para la configuración más sencilla, elija una plataforma para el repositorio y configure proyectos de prueba, CI y herramientas de forma coherente para esa plataforma. No combine proyectos de prueba basados en VSTest ni basados en Microsoft.Testing.Platform .NET en la misma solución ni ejecute la configuración porque no se admite ese escenario. Si también ejecuta pruebas que no son de .NET que dependen de VSTest (por ejemplo, pruebas de C++ o JavaScript), ejecute esas pruebas en configuraciones independientes de las pruebas de .NET basadas en MTP.

Cómo elegir la plataforma

Use los escenarios siguientes para elegir rápidamente.

Caso de uso Elegir Por qué
Necesita escenarios nativos de ejecución de pruebas AOT o recorte. Microsoft.Testing.Platform MTP admite estos escenarios de implementación modernos, mientras que VSTest no.
Estás compilando proyectos de prueba empaquetados de WinUI o UWP. VSTest Estos tipos de proyecto no son compatibles actualmente con MTP.
Debe mezclar pruebas de .NET y adaptadores de prueba que no son .NET (por ejemplo, adaptadores de JavaScript o C++). VSTest VSTest admite escenarios de adaptadores de lenguaje mixto, mientras que MTP es .NET específico.
Quiere que los proyectos de prueba se comporten como ejecutables normales (, ejecución directa de ejecutables, , y flujos F5 del proyecto de inicio). Microsoft.Testing.Platform MTP es ejecutable primero, por lo que las aplicaciones de prueba se ejecutan como aplicaciones de .NET estándar en flujos de trabajo locales y de CI.
Confías en integraciones bien establecidas dentro de las herramientas existentes. VSTest VSTest tiene el registro de seguimiento de compatibilidad más largo entre los productos, tareas y canalizaciones existentes. La compatibilidad con MTP está creciendo en el ecosistema, pero algunas integraciones pueden quedarse rezagadas respecto a VSTest.
Prefiere valores predeterminados estrictos y comportamiento explícito. Microsoft.Testing.Platform MTP favorece la ejecución determinista con un modelo de extensión ligero, opcional y registro en tiempo de compilación. Por ejemplo, puede producir un error cuando no se ejecutan pruebas, reducen la variabilidad dependiente del entorno y permiten deshabilitar extensiones individuales por entorno.
Tú prefieres valores predeterminados compatibles con versiones anteriores que sean más suaves. VSTest Ambas plataformas se preocupan por la compatibilidad con versiones anteriores. VSTest da prioridad a los valores predeterminados orientados a la compatibilidad para diversas cadenas de herramientas existentes, mientras que MTP proporciona compatibilidad con versiones anteriores dentro de su propio modelo de extensión.
Estás bloqueado por un problema o comportamiento específico de VSTest en su flujo de trabajo actual. Microsoft.Testing.Platform En muchos escenarios, el mismo flujo de trabajo no se ve afectado cuando se traslada a MTP debido a diferencias en el modelo de tiempo de ejecución y la arquitectura de extensión.

Si el caso de uso específico no aparece en la lista, ambas plataformas son opciones válidas.

Integración y soporte de herramientas

Área de integración VSTest Microsoft.Testing.Platform
Integración del IDE Integración madura en Visual Studio y otras herramientas que dependen del protocolo y los adaptadores de VSTest. Se admite en escenarios de Visual Studio y Visual Studio Code, mientras continúa el trabajo de integración en partes del ecosistema.
CI y herramientas externas Amplia compatibilidad entre herramientas y tareas de Microsoft y no Microsoft ya establecidas desde hace mucho tiempo. En Azure DevOps, puede usar la tarea VSTest (VSTest@3, vstest.console) o la tarea .NET (DotNetCoreCLI@2, dotnet test). Funciona en flujos de trabajo de CI y .NET modernos, pero algunas integraciones de terceros podrían seguir retrasando VSTest. En Azure DevOps, use la tarea .NET (DotNetCoreCLI@2, dotnet test).
comportamiento Modo VSTest predeterminado. Se aplican los argumentos y el comportamiento de VSTest. El modo MTP nativo está disponible en .NET SDK 10 y versiones posteriores.

Para obtener detalles completos sobre los modos y argumentos, vea Probar con .

Inicio desde el marco de pruebas

Si elige VSTest

  • MSTest: Ejecución de pruebas con MSTest
  • NUnit: NUnit y Microsoft.Testing.Platform
  • xUnit.net: Introducción a xUnit.net
  • TUnit: no se admite en VSTest. Use Microsoft.Testing.Platform.

Si elige Microsoft.Testing.Platform

  • MSTest: Ejecución de pruebas con MSTest
  • NUnit: compatibilidad con Microsoft.Testing.Platform en NUnit (NUnit runner)
  • xUnit.net: Plataforma de pruebas de Microsoft (xUnit.net v3)
  • TUnit: documentación de TUnit

Pasos siguientes

  • Más información sobre los conceptos de MTP: Introducción a Microsoft.Testing.Platform
  • Descripción de las opciones de VSTest: opciones de VSTest
  • Migración desde VSTest: Migración de VSTest a Microsoft.Testing.Platform
  • Agregar funcionalidades: Características de Microsoft.Testing.Platform