Skip to main content

Fixing integration test issues with Microsoft.AspNetCore.Mvc.Testing in .NET 9

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

.NET 6 minimal API–Integration testing

ASP.NET Core–Integration testing–Configuration