.NET Core 6单元测试为何未正确使用appsettings.Test.json?
.NET Core 6单元测试配置加载问题解决思路
隔离测试项目的配置加载逻辑
单元测试时不要依赖系统自动加载配置,手动构建测试专用的配置对象,明确只加载appsettings.Test.json。示例代码:var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.Test.json", optional: false, reloadOnChange: true) .Build();如果是用
WebApplicationFactory做集成测试,就在派生类里重写ConfigureWebHost方法,替换配置源,跳过API项目的appsettings.json。修正API项目的占位符格式
把不符合JSON规范的#{...}#占位符改成.NET Core配置系统原生支持的${...}格式,这样即使测试时意外加载了API的配置文件,也不会因JSON格式错误抛出解析异常,只会用默认值或空值兜底。如果必须保留#{...}#格式,就把占位符替换步骤移到流水线部署阶段,测试阶段使用不带占位符的配置文件副本。调整项目文件的复制规则
检查测试项目的.csproj文件,确保没有意外复制API项目的appsettings.json到测试输出目录。同时把API项目的appsettings.json设置为不复制到输出目录(仅在生产部署时处理),让测试运行时找不到该文件,避免加载。
内容的提问来源于stack exchange,提问作者HalfBloodPrince
相关产品推荐
相关产品推荐

