【发布时间】:2022-01-17 03:03:10
【问题描述】:
我有一些代码可以创建配置,添加一些环境变量,然后,如果它们存在,添加一些命令行参数。这里的目的是命令行 arg 可以覆盖环境变量。所以我想测试一下,如果使用同名的环境变量和命令行arg,命令行arg会覆盖环境变量。
这很可能是针对 uris 之类的。
所以我的代码是这样的:
public static DoSomeConfigStuff()
{
var builder = new ConfigurationBuilder();
builder.AddEnvironmentVariables();
var commandLineArgs = Environment.GetCommandLineArgs();
if(commandLineArgs != null)
{
builder.AddCommandLine(commandLineArgs);
}
var root = builder.build();
// set various uris using root.GetValue<string>("some uri name")
}
我想对此进行测试,以便在提供命令行参数时使用它提供的 uri,特别是在它作为环境变量和命令行参数提供的情况下。有没有办法做到这一点?我读到人们通过使用环境变量来有效地模拟命令行参数,但这在这里不起作用,因为我想在两者都设置时进行测试。
【问题讨论】:
标签: c# unit-testing command-line-arguments