XUnit Net Core Web API集成测试:“ConnectionString属性尚未初始化。”

问题描述 投票:0回答:1

只是尝试为.NET Core Web API构建Integration Test项目。所以我跟随了一些例子,包括这个例子(https://dotnetcorecentral.com/blog/asp-net-core-web-api-integration-testing-with-xunit/),当然,我遇到了问题。当我运行简单的GET测试时,我得到一个异常:“System.InvalidOperationException:ConnectionString属性尚未初始化。”

任何帮助,将不胜感激。

integration-testing asp.net-core-webapi xunit
1个回答
0
投票

对于server = new TestServer(new WebHostBuilder().UseStartup<Startup>());,您需要手动配置appsettings.json路径

var server = new TestServer(WebHost.CreateDefaultBuilder()
                    .UseContentRoot(@"D:\Edward\SourceCode\AspNetCore\Tests\IntegrationTestMVC") 
                    // This is the path for project which needs to be test
                    .UseStartup<Startup>()
    );

为方便起见,我建议你试试Basic tests with the default WebApplicationFactory

WebApplicationFactory构造函数通过在包含集成测试的程序集上使用等于TEntryPoint程序集System.Reflection.Assembly.FullName的键搜索WebApplicationFactoryContentRootAttribute来推断应用程序内容根路径。如果找不到具有正确密钥的属性,WebApplicationFactory将回退到搜索解决方案文件(* .sln)并将TEntryPoint程序集名称附加到解决方案目录。应用程序根目录(内容根路径)用于发现视图和内容文件。

参考:How the test infrastructure infers the app content root path

© www.soinside.com 2019 - 2024. All rights reserved.