Reputation: 2161
I am trying to reuse a configuration file across multiple tests as opposed to re-loading the file each time. When I use this code the config file is repeatedly loaded. I am not sure what I have misunderstood?
public class ConfigFixture
{
public static IConfiguration ConfigGet()
{
IConfiguration config = new ConfigurationBuilder()
.AddJsonFile("config.local.json")
.Build();
return config;
}
public IConfiguration Config { get => ConfigGet(); }
}
public class Tests: IClassFixture<ConfigFixture>
{
ConfigFixture conFigFixture { get; }
public Tests(ConfigFixture configFixture)
{
this.conFigFixture = configFixture;
}
[Fact]
public void Test1()
{
var container = CosmosDataAccess.Utils.Cosmos
.GetCosmosContainer(conFigFixture.Config);
}
[Fact]
public void Test2()
{
var container = CosmosDataAccess.Utils.Cosmos
.GetCosmosContainer(conFigFixture.Config);
}
}
Upvotes: 0
Views: 251
Reputation: 1499810
I believe it's creating a single instance of ConfigFixture
- but every time you call the Config
property, that is reading the file.
I would suggest you populate that in the constructor instead:
public class ConfigFixture
{
public IConfiguration Config { get; }
public ConfigFixture()
{
Config = new ConfigurationBuilder()
.AddJsonFile("config.local.json")
.Build();
}
}
Upvotes: 2