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

xUnit测试ASP.NET Core应用时如何设置Environment为Development

解决方案

方案1:直接在测试代码中指定环境(最便捷,无需改配置)

在调用Build()方法之前,链式调用UseEnvironment()方法强制指定环境,修改你的主机构建代码如下:

using Microsoft.Extensions.Hosting;

// 其余测试类代码...
this.host = Program.CreateHostBuilder(Array.Empty<string>())
    .UseEnvironment(Environments.Development)
    .Build();
  • 这里推荐直接用Microsoft.Extensions.Hosting.Environments内置常量,避免手动拼写「Development」出错
  • 该方案完全不需要修改原Web应用的任何代码,仅调整测试端的主机构建逻辑即可

方案2:通过环境变量全局指定测试环境

你可以通过设置ASPNETCORE_ENVIRONMENT环境变量为Development,让所有ASP.NET Core主机默认读取该环境配置,有两种配置方式:

本地Rider单元测试会话配置

  1. 点击Rider顶部菜单栏「运行」→「编辑配置」
  2. 在左侧列表找到「单元测试」分类,若要对所有单元测试生效,选择「默认值」下的「单元测试」
  3. 找到「环境变量」输入框,点击右侧的编辑按钮,添加一条键值对:ASPNETCORE_ENVIRONMENT = Development
  4. 保存配置后重新运行测试即可生效

测试项目级环境变量配置

也可以直接在测试项目根目录新建.runsettings文件,添加环境变量配置,所有运行该测试项目的环境都会自动读取:

<RunSettings>
  <RunConfiguration>
    <EnvironmentVariables>
      <ASPNETCORE_ENVIRONMENT>Development</ASPNETCORE_ENVIRONMENT>
    </EnvironmentVariables>
  </RunConfiguration>
</RunSettings>

之后在Rider的设置→构建、执行、部署→单元测试中,勾选「使用指定的.runsettings文件」并选择你创建的文件即可。

注意事项

需要确保原Web项目的appsettings.Development.json文件会被复制到测试项目的输出目录,你可以在测试项目的.csproj文件中添加如下配置,自动链接并复制配置文件:

<ItemGroup>
  <Content Include="..\你的Web项目名\appsettings*.json" CopyToOutputDirectory="PreserveNewest" LinkBase="." />
</ItemGroup>

把路径替换成你实际Web项目的相对路径即可。

内容的提问来源于stack exchange,提问作者Chris F Carroll

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:45:00