Compartir a través de


Introducción a MSTest

MSTest, Microsoft Testing Framework, es un marco de pruebas totalmente compatible, de código abierto y multiplataforma para aplicaciones .NET. Permite escribir y ejecutar pruebas, y proporciona conjuntos de pruebas con integración con Visual Studio y Exploradores de pruebas de Visual Studio Code, la CLI de .NET y muchas canalizaciones de CI.

MSTest se hospeda en GitHub y funciona con todos los destinos de .NET admitidos.

Características clave

MSTest proporciona funcionalidades de prueba completas:

Plataformas compatibles

MSTest admite una amplia gama de plataformas .NET y marcos de destino. En la tabla siguiente se resume la compatibilidad con la plataforma y consideraciones especiales:

Plataforma Marcos de destino Compatibilidad con subprocesos Atributos especiales Notas
.NET .NET 8+ Paralelización completa Todos los atributos Recomendado para nuevos proyectos
.NET Framework 4.6.2+ Paralelización completa Todos los atributos Soporte completo de características
UWP UAP 10, .NET 9+ con UAP Subproceso de interfaz de usuario UITestMethod Requiere configuración<UseUwp>true</UseUwp>; consulta el ejemplo de UWP.
WinUI 3 .NET 8+ Subproceso de interfaz de usuario UITestMethod Requiere Windows App SDK; ver ejemplo de WinUI
AOT nativo .NET 8+ Paralelización completa Mayoría de los atributos Conjunto de características limitado; Consulte Ejemplo de AOT nativo

Consideraciones específicas de la plataforma

Pruebas de UWP

Las pruebas para UWP se ejecutan en el contenedor de aplicaciones para UWP y requieren el subproceso de interfaz de usuario para muchas operaciones:

[TestClass]
public class UwpTests
{
    [UITestMethod]
    public void TestUwpControl()
    {
        // Test runs on UI thread
        var button = new Button();
        Assert.IsNotNull(button);
    }
}

Para la configuración de UWP, consulta el ejemplo BlankUwpNet9App.

Pruebas de WinUI 3

Las pruebas de WinUI 3 también requieren acceso a subprocesos de interfaz de usuario para probar componentes visuales:

[TestClass]
public class WinUITests
{
    [UITestMethod]
    public void TestWinUIControl()
    {
        // Test runs on UI thread
        var window = new MainWindow();
        Assert.IsNotNull(window);
    }
}

Para la configuración de WinUI, consulte el ejemplo BlankWinUINet9App y el ejemplo MSTestRunnerWinUI.

AOT nativo

La compilación AOT nativa se admite con algunas limitaciones debido a las funcionalidades de reflexión reducidas. Use generadores de origen siempre que sea posible y pruebe los escenarios de AOT con el ejemplo NativeAotRunner.

Compatibilidad con subprocesos STA

Para escenarios de interoperabilidad COM de Windows, MSTest proporciona atributos STATestClass y STATestMethod para ejecutar pruebas en un apartamento de subproceso único. Para obtener más información sobre el subproceso STA, incluida la compatibilidad de continuación asincrónica con UseSTASynchronizationContext, consulte Atributos de subproceso.

Ejecutores de tests

MSTest admite dos plataformas de ejecución de pruebas:

  • Microsoft.Testing.Platform (MTP): la plataforma de prueba moderna y recomendada con un rendimiento y extensibilidad mejorados.
  • VSTest: la plataforma de prueba original y predeterminada para .NET.

Para los nuevos proyectos, se recomienda usar Microsoft.Testing.Platform (MTP) con MSTest.Sdk.

Directiva de soporte técnico de MSTest

Desde v3.0.0, MSTest sigue estrictamente el control de versiones semántico.

El equipo de MSTest solo admite la versión más reciente publicada y anima encarecidamente a los usuarios a actualizar siempre a la versión más reciente para beneficiarse de mejoras y revisiones de seguridad. Las versiones preliminares no son compatibles con Microsoft, pero se ofrecen para pruebas públicas antes de la versión final.

Historial de versiones

MSTest ha experimentado una evolución significativa en las versiones principales:

  • MSTest v1: el marco de pruebas original de Visual Studio
  • MSTest v2: primera versión de código abierto con compatibilidad multiplataforma
  • MSTest v3: reescritura moderna con una arquitectura y características mejoradas
  • MSTest v4: versión actual con características mejoradas

Para obtener más información sobre todas las versiones, consulte el registro de cambios de MSTest.

Si va a actualizar desde una versión anterior, consulte las guías de migración:

Cambios críticos

El equipo de MSTest revisa detenidamente y minimiza los cambios importantes. Cuando se necesitan cambios disruptivos, el equipo usa anuncios de GitHub y etiquetas de cambio disruptivo en las incidencias para informar a la comunidad con antelación, dando a los usuarios tiempo para proporcionar comentarios y plantear preocupaciones antes de que los cambios se publiquen.

Pasos siguientes