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

如何在VS Code中运行C#测试前从.env加载环境变量

解决VS Code运行C# NUnit测试时加载.env环境变量的问题

下面提供几种无需依赖.runsettings文件的可行方案:

方案一:在测试代码中自动加载.env(推荐)

这种方法无需修改VS Code配置,不管是点击测试窗口运行还是命令行执行dotnet test,都会自动加载环境变量:

  • 给测试项目安装dotenv.net NuGet包:
    dotnet add package dotenv.net
    
  • 在测试项目中添加全局初始化类,用于加载.env文件:
    using dotenv.net;
    using NUnit.Framework;
    
    [SetUpFixture]
    public class TestEnvironmentSetup
    {
        [OneTimeSetUp]
        public void LoadEnvVariables()
        {
            // 自动探测项目根目录的.env文件并加载
            DotEnv.Load(new DotEnvOptions(probeForEnv: true));
        }
    }
    
    这个类会在所有测试执行前运行一次,把.env里的变量注入到当前进程的环境变量中。

方案二:自定义VS Code测试任务注入环境变量

如果不想修改测试代码,可以通过自定义Shell任务加载.env并运行测试:

  1. 在项目根目录的.vscode/tasks.json中添加以下配置:
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "Run Tests with Env",
                "command": "bash",
                "args": [
                    "-c",
                    "export $(grep -v '^#' .env | xargs) && dotnet test"
                ],
                "type": "shell",
                "group": {
                    "kind": "test",
                    "isDefault": true
                },
                "problemMatcher": "$msCompile"
            }
        ]
    }
    
  2. 回到VS Code测试窗口,点击测试集合旁的下拉按钮,选择「配置测试运行」,选中刚才创建的Run Tests with Env任务。之后点击运行测试就会自动加载.env变量。

方案三:直接在VS Code设置中配置环境变量(适合少量变量)

如果.env中的变量数量少且不频繁变更,可以直接在.vscode/settings.json中硬编码测试用的环境变量:

{
    "dotnet.unitTests.environmentVariables": {
        "YOUR_VAR_NAME": "var_value",
        "ANOTHER_VAR": "another_value"
    }
}

注意这种方法需要手动同步.env和settings.json的变量值,适合变量较少的场景。

内容的提问来源于stack exchange,提问作者user23145140

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:32:37