c# - 如何从 XUnit 测试中的项目加载 appsettings.Development.json
问题描述
我的测试使用 HttpClient。所以我在所有测试文件的构造函数中构建了一个帮助方法初始化客户端。
我最初尝试使用 AppContext.BaseDirectory 来获取我尝试测试的项目的基本目录。问题是它没有选择正确的项目名称,因此它从不同的项目加载 appsettings.Development.json 导致测试失败。我最终对项目目录进行了硬编码。
我不知道如何强制它从我要测试的项目中加载 appsettings.Development.json。
public static HttpClient GetHttpClient()
{
// projectDir one, loads tests project.
// var projectDir = AppContext.BaseDirectory;
var projectDir = @"C:\Work\Src\Application\bin\Debug\net5.0";
var server = new TestServer(new WebHostBuilder()
.UseEnvironment("Development")
.UseConfiguration(new ConfigurationBuilder()
.SetBasePath(projectDir)
.AddJsonFile("appsettings.Development.json")
.Build()
)
.UseStartup<Startup>()
);
return server.CreateClient();
}
主要问题是它无法加载来自 appsettings.Development.json 文件的 RabbitMQ 设置。
// Load RabbitMQ config.
var serviceClientSettingsConfig = Configuration.GetSection("RabbitMq");
services.Configure<RabbitMqConfiguration>(serviceClientSettingsConfig);
注意:我计划模拟后者,但现在我的客户需要看到端到端测试正常工作。
解决方案
推荐阅读
- c - 在 C 中分隔多个名字和/或姓氏
- javascript - 为总数增加附加值
- mysql - 以分组方式降序显示行
- android - 可能没有数据库的保存数据的方法
- python - 在 Python 中返回上一个命令
- objective-c - 如何同时录制麦克风和钢琴
- sql - 在 SQL 中接收数据类型转换错误
- python - 如何有效地订购一个numpy矩阵
- python - Django / Postgres:在带有条件注释的查询中,返回一个带有特定值的ArrayField?
- apache-kafka - 如何实现类似的 sql:select a, count(distinct(b)) from x group by a with kafka stream