Migración a la API mínima: la configuración de prueba en Json no está anulando el Programa.
Gracias a esta respuesta: https://stackoverflow.com/questions/70093628/integration-test-and-hosting-asp-net-core-6-0-without-startup-class/70095604#70095604, he podido realizar pruebas de integración con la API.
WebApplicationFactory<Program>? app = new WebApplicationFactory<Program>()
.WithWebHostBuilder(builder =>
{
builder.ConfigureServices(services =>
{
});
});
HttpClient? client = app.CreateClient();
Esto ha funcionado utilizando el appsettings.json del proyecto de la API. Ahora estoy intentando utilizar integrationtestsettings.json en su lugar utilizando:
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(ProjectDirectoryLocator.GetProjectDirectory())
.AddJsonFile("integrationtestsettings.json")
.Build();
WebApplicationFactory<Program>? app = new WebApplicationFactory<Program>()
.WithWebHostBuilder(builder =>
{
builder.ConfigureAppConfiguration(cfg => cfg.AddConfiguration(configuration));
builder.ConfigureServices(services =>
{
});
});
_httpClient = app.CreateClient();
He inspeccionado la variable de configuración y puedo ver las propiedades cargadas desde mi archivo integrartiontestsettings.json. Sin embargo, el host sigue ejecutándose utilizando el appsettings.json del proyecto del servidor.
Anteriormente, en .Net5, estaba utilizando WebHostBuilder y los ajustes eran reemplazados por los ajustes de prueba.
WebHostBuilder webHostBuilder = new();
webHostBuilder.UseStartup<Startup>();
webHostBuilder.ConfigureAppConfiguration(cfg => cfg.AddConfiguration(_configuration));
Pero no puedo hacer que los ajustes de prueba se apliquen utilizando WebApplicationFactory.
davy.ai
Solución para utilizar la configuración de la prueba de integración en ASP.NET Core
Para utilizar la configuración de la prueba de integración en ASP.NET Core, puedes seguir los siguientes pasos:
integrationtestsettings.json
en el proyecto de prueba e incluye la configuración necesaria que se requiere para que las pruebas de integración se ejecuten.Carga la configuración desde el archivo
integrationtestsettings.json
creando una instancia deConfigurationBuilder
y agregando el archivo a la misma como se muestra a continuación:WithWebHostBuilder
de la claseWebApplicationFactory
para configurar el host con la configuración cargada como se muestra a continuación:HttpClient
utilizando el métodoCreateClient
de la claseWebApplicationFactory
como se muestra a continuación:Ahora, puedes utilizar la instancia de
HttpClient
para hacer solicitudes a la API y el host utilizará la configuración del archivointegrationtestsettings.json
.