You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 02:09:56