我想使用IHostingEnvironment
and ConfigurationBuilder
在我的功能测试项目中,根据环境,功能测试使用不同的配置集运行。我想使用下面的代码:
public IConfigurationRoot ConfigureConfiguration(IHostingEnvironment hostingEnvironment)
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{hostingEnvironment.EnvironmentName}.json", true)
.AddEnvironmentVariables();
return builder.Build();
}
我想要一个appSettings.json
and appSettings.Production.json
文件将我的功能测试指向生产。这可能吗?如何才能实现呢?我需要一个实例IHostingEnvironment
.
您可以使用ConfigurationBuilder
在一个测试项目中只需几个步骤。我认为你不需要IHostingEnvironment
接口本身。
首先,将两个 NuGet 包添加到您的项目中,其中包含ConfigurationBuilder
扩展方法:
"dependencies": {
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final"
}
其次,将所需的环境变量放入测试项目的属性中:
然后您可以在测试项目中创建自己的构建器:
private readonly IConfigurationRoot _configuration;
public BuildConfig()
{
var environmentName = Environment.GetEnvironmentVariable("Hosting:Environment");
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{environmentName}.json", true)
.AddEnvironmentVariables();
_configuration = config.Build();
}
如果您想使用完全相同的设置文件(而不是副本),那么您需要添加它的路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)