1 回答
TA贡献1817条经验 获得超6个赞
首先,ConfigureServices可以代替UseStartup,不能一起使用。其次,您不应该创建范围并在此期间进行迁移ConfigureServices,而是在构建 Web 主机之后,请参见此处:
Configure在较早的教程中,您可能会在 Startup.cs的方法中看到类似的代码。我们建议您仅使用 Configure 方法来设置请求管道。应用程序启动代码属于该 Main方法。
这样做的唯一方法不是在工厂中,而是在工厂建造之后:
public class MyAPITests
: IClassFixture<CustomWebApplicationFactory<Startup>>
{
private readonly HttpClient _client;
private readonly CustomWebApplicationFactory<Startup> _factory;
public MyAPITests(CustomWebApplicationFactory<Startup> factory)
{
_factory = factory;
_client = factory.CreateClient();
var host = factory.Server.Host;
using (var scope = host.Services.CreateScope())
{
var scopedServices = scope.ServiceProvider;
var dbContext = scopedServices.GetRequiredService<MyDbContext>();
dbContext.Database.EnsureCreated();
new MyDbContextSeed()
.SeedAsync(dbContext)
.Wait();
}
}
//...
}
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报