C# xUnit TestServer MVC核心

C# xUnit TestServer MVC核心,c#,testing,asp.net-core,xunit,fact,C#,Testing,Asp.net Core,Xunit,Fact,我试图设置一个测试来获取我所有的产品,但是我得到了和ArgumentNullException但是我不明白为什么,我最近开始研究这个,所以 这是错误消息 消息:System.ArgumentNullException:值不能为null。 参数名称:connectionString 专用只读测试服务器; 私有只读HttpClient; 公共产品控制器集成测试() { 服务器=新的TestServer(新的WebHostBuilder() .UseStartup()); client=server.

我试图设置一个测试来获取我所有的产品,但是我得到了和
ArgumentNullException
但是我不明白为什么,我最近开始研究这个,所以

这是错误消息

消息:System.ArgumentNullException:值不能为null。
参数名称:connectionString

专用只读测试服务器;
私有只读HttpClient;
公共产品控制器集成测试()
{
服务器=新的TestServer(新的WebHostBuilder()
.UseStartup());
client=server.CreateClient();
}
[事实]
公共异步任务产品\u Get\u All()
{
var response=await client.GetAsync(“/api/Products”);
response.EnsureSuccessStatusCode();
var responseString=await response.Content.ReadAsStringAsync();
var products=JsonConvert.DeserializeObject(responseString);
products.Count()应()为(12);
}
提前谢谢

消息:System.ArgumentNullException:值不能为null。 参数名称:connectionString

对于此错误,其原因是您在装箱
TestServer
时未指定配置。在产品项目中,
Program.cs
中的
WebHost.CreateDefaultBuilder(args)
将配置从“appsettings.json”加载Microsoft.Extensions.Configuration.IConfiguration

如果要使用production appsettings.json进行测试,可以尝试以下操作:

        public ProductControllerIntegrationTests()
    {
        var configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .Build();

        server = new TestServer(new WebHostBuilder()
            .UseConfiguration(configuration)
            .UseStartup<Startup>()
            );
        client = server.CreateClient();
    }
公共产品控制器集成测试() { var configuration=new ConfigurationBuilder() .AddJsonFile(“appsettings.json”) .Build(); 服务器=新的TestServer(新的WebHostBuilder() .UseConfiguration(配置) .UseStartup() ); client=server.CreateClient(); }
如果没有堆栈跟踪,很难说。我最好的猜测是,当您实例化TestServer时,它会抛出异常。在过去几天里,我一直在为这个问题绞尽脑汁——这个解决方案很简单,工作起来像个冠军!!谢谢
        public ProductControllerIntegrationTests()
    {
        var configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .Build();

        server = new TestServer(new WebHostBuilder()
            .UseConfiguration(configuration)
            .UseStartup<Startup>()
            );
        client = server.CreateClient();
    }