Compartir comentarios
Las respuestas se generan en base a la documentación.

Ejecuta las pruebas y siguientes pasos

Ejecuta las pruebas

Ejecuta las pruebas desde la raíz de la solución:

$ dotnet test ./RazorPagesProject.sln

La primera ejecución puede tardar más tiempo porque Docker necesita descargar la imagen de Microsoft SQL Server. En las siguientes ejecuciones, la imagen se almacenará en la caché local.

Deberías ver que xUnit detecta y ejecuta las pruebas, incluyendo la clase MsSqlTests.IndexPageTests. Testcontainers inicia un contenedor SQL Server, las pruebas se ejecutan contra él y el contenedor se detiene y elimina automáticamente una vez que finalizan las pruebas.

Resumen

Al reemplazar SQLite con una instancia de Microsoft SQL Server gestionada por Testcontainers, las pruebas de integración se ejecutan contra el mismo tipo de base de datos utilizado en producción. Este enfoque detecta a tiempo problemas específicos de la base de datos, como diferencias en el dialecto SQL, el comportamiento de las transacciones o el manejo de tipos de datos entre SQLite y SQL Server.

La clase MsSqlTests utiliza IAsyncLifetime para gestionar el ciclo de vida del contenedor, y una CustomWebApplicationFactory anidada conecta la cadena de conexión del contenedor con la configuración de servicios de la aplicación. Puedes aplicar este mismo patrón a cualquier base de datos o servicio compatible con Testcontainers.

Para aprender más sobre Testcontainers, visita la introducción a Testcontainers.

Lectura recomendada