C# .net Core 3.0,DirectoryNotFoundException与Xunit集成测试
我在.NETCore3.0上迁移Xunit集成测试时遇到了一个新问题。我在子文件夹中移动了项目,现在我有一个DirectoryNotFoundException TestServerFixture:C# .net Core 3.0,DirectoryNotFoundException与Xunit集成测试,c#,.net-core,xunit,C#,.net Core,Xunit,我在.NETCore3.0上迁移Xunit集成测试时遇到了一个新问题。我在子文件夹中移动了项目,现在我有一个DirectoryNotFoundException TestServerFixture: public class TestServerFixture : WebApplicationFactory<TestStartup> { public HttpClient Client { get; } public ITestOutputHelper Output
public class TestServerFixture : WebApplicationFactory<TestStartup>
{
public HttpClient Client { get; }
public ITestOutputHelper Output { get; set; }
protected override IHostBuilder CreateHostBuilder()
{
var builder = Host.CreateDefaultBuilder()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddXunit(Output);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseStartup<TestStartup>()
.ConfigureTestServices((services) =>
{
services
.AddControllers()
.AddApplicationPart(typeof(Startup).Assembly);
});
});
return builder;
}
public TestServerFixture SetOutPut(ITestOutputHelper output)
{
Output = output;
return this;
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
Output = null;
}
}
但它不起作用
我通过回购向您展示了该问题:
您对正确配置它有什么建议吗?我在这里找到了一个可用的解决方案:我找到了一个适合我的解决方案/破解方法,可在这里找到: 就我而言,解决方案应该是:
public class TestServerFixture : WebApplicationFactory<Startup>
{
protected override IHostBuilder CreateHostBuilder()
{
var builder = Host.CreateDefaultBuilder()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddXunit(Output);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.ConfigureTestServices((services) =>
{
services
.AddControllers()
.AddApplicationPart(typeof(Startup).Assembly);
});
});
return builder;
}
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
builder.UseStartup<TestStartup>();
base.ConfigureWebHost(builder);
}
}
公共类TestServerFixture:WebApplicationFactory
{
受保护的覆盖IHostBuilder CreateHostBuilder()
{
var builder=Host.CreateDefaultBuilder()
.ConfigureLogging(日志=>
{
logging.ClearProviders();
logging.AddXunit(输出);
})
.ConfigureWebHostDefaults(webBuilder=>
{
韦伯造船厂
.ConfigureTestServices((服务)=>
{
服务
.AddControllers()
.AddApplicationPart(类型(启动).Assembly);
});
});
返回生成器;
}
受保护的覆盖无效配置WebHost(IWebHostBuilder)
{
builder.UseStartup();
base.ConfigureWebHost(构建器);
}
}
public class TestServerFixture : WebApplicationFactory<Startup>
{
protected override IHostBuilder CreateHostBuilder()
{
var builder = Host.CreateDefaultBuilder()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddXunit(Output);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.ConfigureTestServices((services) =>
{
services
.AddControllers()
.AddApplicationPart(typeof(Startup).Assembly);
});
});
return builder;
}
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
builder.UseStartup<TestStartup>();
base.ConfigureWebHost(builder);
}
}