我正在向ASP.NET Core Web服务添加集成测试(请参阅Microsoft在Integration tests in ASP.NET Core上的文章,并且我已经扩展了WebApplicationFactory
,以将数据库提供程序替换为内存数据库。 ,ASP.NET Core Web服务包括默认情况下启用的其他服务。
可以通过服务对象停止/禁用每个服务,但是在GetRequiredService()
上对WebApplicationFactory.ConfigureServices()
的调用将抛出System.InvalidOperationException
。
有人知道是否可以禁用默认服务吗?
答案 0 :(得分:0)
试试这个:
var service = services.FirstOrDefault(d => d.ServiceType == typeof(IService));
if (service != null)
{
services.Remove(service);
}
在你的 CustomWebApplication 工厂范围内
builder.ConfigureTestServices(services => ...)