AspNetCore测试:WebApplicationTestFixture类未找到问题咨询
关于ASP.NET Core 2.1 RC中WebApplicationTestFixture类的问题
你提到的WebApplicationTestFixture类并不是Microsoft.AspNetCore.Mvc.Testing包中的正式公开类型——在ASP.NET Core 2.1的候选发布版阶段,官方的测试模型还在迭代调整,你看到的示例里的这个类其实是一个自定义封装类,需要你自行创建它。
解决步骤
确认已安装依赖包
首先确保你的项目已经安装了Microsoft.AspNetCore.Mvc.Testing的RC版本包,这是Web应用测试的基础依赖。自行实现WebApplicationTestFixture类
这个类本质是对官方WebApplicationFactory<TStartup>的简单封装(在2.1 RC中,WebApplicationFactory是核心测试基类)。你可以创建如下实现:
using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.AspNetCore.Hosting; public class WebApplicationTestFixture<TStartup> : WebApplicationFactory<TStartup> where TStartup : class { // 可选:如果需要自定义WebHost配置,可以重写此方法 protected override IWebHostBuilder CreateWebHostBuilder() { return WebHost.CreateDefaultBuilder() .UseStartup<TStartup>(); } }
- 正常使用你的测试代码
完成上述类的创建后,你原来编写的测试代码就可以正常运行了——此时WebApplicationTestFixture<Startup>已存在,依赖注入能正确解析它。
补充说明
在ASP.NET Core 2.1正式发布后,官方直接推荐使用WebApplicationFactory<TStartup>作为测试固定类,不再需要自定义WebApplicationTestFixture。但在你使用的RC阶段,示例中可能用了这个自定义类名来简化演示,所以需要你手动实现它。
内容的提问来源于stack exchange,提问作者nikib3ro
相关产品推荐
相关产品推荐

