Tweet
Compartir
Enviar

Nueva plataforma de pruebas .NET: lo que hay que saber

DotNet
 

La nueva plataforma de pruebas (Microsoft.Testing.Platform) sustituye a la introducida con Visual Studio 2012. Ofrece una experiencia unificada para ejecutar las pruebas de manera uniforme, independientemente del framework utilizado, ya sea NUnit, XUnit, MsTest u otros.

Se ha construido sobre seis pilares fundamentales: determinación, portabilidad, integración, extensibilidad, rendimiento y seguridad.

Tests déterministes

La ejecución de las mismas pruebas con la misma configuración debe producir los mismos resultados, independientemente del entorno, esto es lo que permite la nueva plataforma. Esto incluye las máquinas locales, los servidores de compilación o las máquinas de los desarrolladores.

Problemas con la antigua plataforma

Las pruebas en la antigua plataforma podían variar debido a versiones incoherentes de los DLL de TestAdapter recuperados de la caché NuGet.

Registro estadístico de extensiones

Para resolver el problema anterior, la nueva plataforma utiliza el registro estático de extensiones, eliminando así la búsqueda por reflexión, la búsqueda en los expedientes y la resolución de montajes personalizados, que podían ser fuente de errores.

Portabilidad de las pruebas

La portabilidad permite que los proyectos y las pruebas sean independientes de su entorno, facilitando su ejecución en distintos sistemas sin depender de configuraciones específicas.

Un problema difícil de resolver con este método es el de las pruebas que fallan en el servidor pero funcionan localmente, lo que hace que la descarga sea compleja. Con la nueva plataforma, basta con descargar el archivo de compilación del servidor para reproducir el problema localmente, sin necesidad de utilizar las versiones del SDK .NET del entorno de ejecución.

Integración en el entorno .NET

La nueva solución permite a los proyectos de pruebas dejar de ser casos particulares en el ecosistema .NET, facilitando así su integración como aplicaciones de consola clásicas.

Esto reduce los esfuerzos necesarios para integrar nuevas funcionalidades o realizar pruebas con herramientas DevOps.

Extensibilidad de la plataforma

La nueva plataforma permite a los desarrolladores añadir funciones adicionales:

  • Extensibilidad interna: la plataforma se basa en el concepto de extensibilidad, ya que muchas de sus funciones internas son extensiones.
  • Extensiones externas: pueden añadirse extensiones externas, como la función de reintento, que permiten realizar más eficazmente las pruebas denominadas "inestables".
  • Gestión de dependencias: la plataforma no se basa en dependencias externas, como Newtonsoft.Json, sino en paquetes del framework .NET, como System.Text.Json, lo que la hace más evolutiva.

Mejora del rendimiento

A continuación se enumeran los puntos más significativos en relación con los resultados:

  • La plataforma minimiza el uso de la memoria y la CPU, centrándose principalmente en la ejecución de pruebas en lugar de en el funcionamiento de la propia plataforma.
  • El rendimiento ha mejorado en torno a un 30%.
  • El número de procesos iniciados se reduce al mínimo.

Seguridad

Dos aspectos mejoran la seguridad de la plataforma:

  • La minimización de los gastos reduce la presencia potencial de gastos vulnerables.
  • La plataforma se suministra únicamente en forma de paquete NuGet, lo que permite identificar y resolver más rápidamente los problemas de seguridad.

 

Nuevas funciones

Las nuevas funciones más importantes de la plataforma son las siguientes:

Recarga en caliente (Hot Reload)

La Recarga en Caliente permite ver los resultados inmediatamente después y a medida que se registran las modificaciones de código.

Integración Docker

Las posibilidades de integración con Docker son las siguientes :

  • Ejecución de pruebas en un contenedor Docker
  • Creación de una imagen Docker
  • Realización de pruebas en Linux a partir de un entorno Windows.

Extensión Hang Dump

La extensión Hang Dump permite especificar un tiempo de espera para las pruebas, el proceso se detiene si se supera el tiempo de espera y se genera una memoria de volcado para la descarga.

Soporte nativo AOT

La plataforma se ha creado para ser compatible de forma nativa con AOT.

Por ejemplo, la compilación AOT (Ahead-Of-Time) es un método de compilación que convierte el código fuente en código máquina nativo antes de su ejecución. A diferencia de la compilación JIT (Just-In-Time), que compila el código durante la ejecución, la compilación AOT permite una ejecución más rápida y un uso más eficiente de los recursos, ya que el código ya está optimizado para los recursos disponibles. Esto mejora el rendimiento y la reactividad de las aplicaciones.

Conclusión

En resumen, la nueva plataforma de pruebas Microsoft.Testing.Platform representa un avance significativo con respecto a su predecesora. Al hacer hincapié en el detalle, la portabilidad, la integración, la extensibilidad, el rendimiento y la seguridad, ofrece una experiencia de prueba más fiable y eficaz.

 

Los desarrolladores pueden contar con una infraestructura robusta, que minimice los efectos de las incoherencias medioambientales y facilite la integración de nuevas funcionalidades.

Las innovaciones como Hot Reload y la integración de Docker hacen que el proceso de prueba sea aún más fluido y dinámico, convirtiendo a esta plataforma en una herramienta indispensable para el desarrollo moderno.

¿Quiere integrar esta nueva plataforma de pruebas en sus aplicaciones?

CROSS by Micropole es especialista en tecnologías .NET, con un equipo de arquitectos y desarrolladores senior. Ponemos a su disposición nuestra experiencia y conocimientos. 

Fabien Lorenzini

Fabien Lorenzini

Técnico principal de Microsoft

Por qué la modernización de las aplicaciones .NET Framework 4.8 a .NET 8 ó 9 es crucial en 2025

Por qué la modernización de las aplicaciones .NET Framework...

Introducción a la modernización La modernización de las aplicaciones es un proceso esencial...
Keynote d'ouverture de Microsoft Ignite 2024 : ce qu'il faut retenir

Keynote d'ouverture de Microsoft Ignite 2024 :...

Durante la conferencia magistral de Satya Nadella en Ignite 2024...
La guía definitiva para la .NET Conf 2024

La guía definitiva para la Conf...

  Prepárese para una semana excepcional de descubrimientos, innovaciones e intercambios en torno a .NET...
ACCÉLÉREZ AVEC NOUS
¿TIENE FLUIDEZ DE DATOS?

Contacte con nosotros