Migrar desde Microsoft. Testing.Platform (MTP) v1 a v2

La versión estable MTP v2 ya está disponible. Esta guía de migración explora lo que ha cambiado en MTP v2 y cómo puede migrar a esta versión.

Cambios importantes en el código fuente

Estos son cambios importantes que pueden provocar errores de compilación después de la migración.

Se han eliminado los marcos de destino no compatibles

Se ha eliminado la compatibilidad con los marcos de destino desde .NET Core 3.1 hasta .NET 7. La versión mínima admitida de .NET es .NET 8. Este cambio no afecta a .NET Framework. .NET Framework 4.6.2 sigue siendo el objetivo mínimo compatible de .NET Framework.

Tipos obsoletos eliminados

Los siguientes tipos se marcaron como obsoletos en MTP v1. En MTP v2, se quitan completamente:

  • ITestApplicationLifecycleCallbacks: use ITestHostApplicationLifetime en su lugar.
  • TestNodeFileArtifact: use FileArtifactProperty en su lugar.
  • KeyValuePairStringProperty: use TestMetadataProperty en su lugar.
  • TestSessionContext.Client: use IClientInfo en su lugar.

Este cambio importante no afecta a los usuarios habituales de los marcos de pruebas. Solo afecta a los autores del marco de pruebas y a los autores de extensiones.

Cambios de firma de API

Este cambio importante no afecta a los usuarios habituales de los marcos de pruebas. Solo afecta a los autores del marco de pruebas y a los autores de extensiones.

Cambios disruptivos en el comportamiento

Estos son cambios importantes que podrían afectar al comportamiento en tiempo de ejecución.

Compatibilidad con elementos basados en VSTest dotnet test

El dotnet test comando tiene dos implementaciones:

  • Implementación basada en VSTest: esta era la única implementación hasta el SDK de .NET 9.
  • Implementación basada en MTP: esto se agregó a partir del SDK de .NET 10.

Ejecutar proyectos de prueba MTP con el SDK de .NET 10 ahora requiere optar por la instancia basada en dotnet test MTP y ya no se podrá ejecutar con la implementación basada en VSTest, que la propiedad MSBuild TestingPlatformDotnetTestSupport había habilitado anteriormente en MTP v1.

Para participar en la implementación basada en MTP, cree global.json en la raíz del repositorio o la solución (o actualice la global.json existente si ya tiene una), para que el ejecutor de pruebas se establezca como Microsoft.Testing.Platform, como se muestra en el ejemplo siguiente:

{
  "test": {
    "runner": "Microsoft.Testing.Platform"
  }
}

Si intenta ejecutar dotnet test basado en VSTest con MTP v2, se producirá el siguiente error:

La prueba con el destino vsTest ya no es compatible con MTP en .NET SDK 10 y versiones posteriores. Si usa dotnet test, debería experimentar la experiencia nueva del comando. Para obtener más información, consulte: https://aka.ms/dotnet-test-mtp-error

Cambio de nombre de las opciones de la línea de comandos

  • Se ha cambiado el nombre de la --diagnostic-output-fileprefix opción de línea de comandos a --diagnostic-file-prefix.
  • Se ha cambiado el nombre de la --diagnostic-filelogger-synchronouswrite opción de línea de comandos a --diagnostic-synchronous-write.