When upgrading an ASP.NET Core application to .NET 9, I encountered the following error in my integration tests:
System.InvalidOperationException: No application configured. Please specify an application via IWebHostBuilder.UseStartup, IWebHostBuilder.Configure, or specifying the startup assembly via StartupAssemblyKey in the web host configuration.
I had updated my custom TestHost to switch from using a Startup.cs file to directly using the Program.cs file and the Minimal API approach. Therefore I added a partial Program.cs and updated the WebApplicationFactory class to use the Program.cs instead (more about this change in this post).
Here is the updated code:
But this code didn’t work and resulted in the error message above.
While giving the code a second look, I noticed that I was still referring to the Startup.cs that I didn't remove yet. I updated the code to use my Program.cs file instead:
Doing that resulted in another error:
A public method named 'ConfigureProduction' or 'Configure' could not be found in the 'Example.Program' type
OK, that didn't work. I did another attempt where I switched from overriding the CreateHostBuilder method to overriding the CreateHost instead:
That did the trick and my tests turned all green again.
More information
Integration tests in ASP.NET Core | Microsoft Learn