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