Muh*_*eed 8 .net c# asp.net-core-mvc asp.net-core
我想在我的功能测试项目中使用IHostingEnvironment
和ConfigurationBuilder
,因此根据环境,功能测试使用不同的配置集运行.我想使用下面的代码:
public IConfigurationRoot ConfigureConfiguration(IHostingEnvironment hostingEnvironment)
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{hostingEnvironment.EnvironmentName}.json", true)
.AddEnvironmentVariables();
return builder.Build();
}
Run Code Online (Sandbox Code Playgroud)
我希望有一个appSettings.json
和appSettings.Production.json
文件来指出我的功能测试在生产中.这可能吗?如何实现?我需要一个实例IHostingEnvironment
.
Wil*_*Ray 11
您可以通过ConfigurationBuilder
几个步骤在测试项目中使用它.我认为你不需要IHostingEnvironment
界面本身.
首先,在项目中添加两个具有ConfigurationBuilder
扩展方法的NuGet包:
"dependencies": {
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final"
}
Run Code Online (Sandbox Code Playgroud)
其次,将您想要的环境变量放入测试项目的属性中:
然后,您可以在测试项目中创建自己的构建器:
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();
}
Run Code Online (Sandbox Code Playgroud)
如果要使用完全相同的设置文件(而不是副本),则需要添加路径.
归档时间: |
|
查看次数: |
13217 次 |
最近记录: |