Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 MTP .NET en la misma solución o ejecute la configuración porque ese escenario no se admite. 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. | MTP | 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 (dotnet run, ejecución directa de ejecutables, dotnet watch, y flujos F5 del proyecto de inicio). |
MTP | 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. | MTP | 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. | MTP | 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 | MTP |
|---|---|---|
| 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, con el trabajo de integración en curso 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). |
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 dotnet test los modos y argumentos, vea Probar con dotnet test.
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 MTP.
Si elige MTP
- MSTest: Ejecución de pruebas con MSTest
- NUnit: compatibilidad con MTP en NUnit (ejecutor de NUnit)
- xUnit.net: Plataforma de pruebas de Microsoft (xUnit.net v3)
- TUnit: documentación de TUnit
Pasos siguientes
- Conoce los conceptos de MTP: Descripción general de MTP
- Descripción de las opciones de VSTest: opciones de VSTest
- Migración desde VSTest: Migración de VSTest a MTP
- Agregar funcionalidades: características de MTP