我已经使用.Net Core 3.0预览版2更新了我的网站,并且希望使用TestServer 进行集成测试。在.Net Core 2.2中,我已经能够使用WebApplicationFactory<Startup>
由于WebHostBuilder即将弃用(请参阅(https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-2.2&tabs=visual-studio)了解更多详细信息。 ),我想立即跟进并实施新的泛型HostBuilder。它对于启动网站非常有用,但是在启动集成测试时崩溃。我知道WebApplicationFactory确实有用WebHostBuilder,这就是它崩溃的原因,但是我不知道如何为Generic更改它HostBuilder。
这是我在.Net Core 2.2中运行的代码:
namespace CompX.FunctionalTest.Web.Factory
{
public class CustomWebApplicationFactory<TStartup> : WebApplicationFactory<Startup>
{
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
builder.ConfigureServices(services =>
{
// Create a new service provider.
var serviceProvider = new ServiceCollection()
.AddEntityFrameworkInMemoryDatabase()
.BuildServiceProvider();
// Add a database context (ApplicationDbContext) using an in-memory
// database for testing.
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseInMemoryDatabase("InMemoryDbForTesting");
options.UseInternalServiceProvider(serviceProvider);
}); …Run Code Online (Sandbox Code Playgroud)