diff --git a/examples/Xunit.Microsoft.DependencyInjection.ExampleTests/ConfigurationTests.cs b/examples/Xunit.Microsoft.DependencyInjection.ExampleTests/ConfigurationTests.cs new file mode 100644 index 0000000..4a6de58 --- /dev/null +++ b/examples/Xunit.Microsoft.DependencyInjection.ExampleTests/ConfigurationTests.cs @@ -0,0 +1,22 @@ +namespace Xunit.Microsoft.DependencyInjection.ExampleTests; + +public class ConfigurationTests : TestBed +{ + private const string Key = "CONFIG_KEY"; + private const string Value = "Value"; + + public ConfigurationTests(ITestOutputHelper testOutputHelper, TestProjectFixture fixture) : base(testOutputHelper, fixture) + { + Environment.SetEnvironmentVariable(Key, Value); + } + + [Fact] + public void EnvironmentVariablesViaConstructorAreAvailable() + { + _fixture.GetServiceProvider(_testOutputHelper); + + var value = _fixture.Configuration!.GetValue(Key); + + Assert.Equal(Value, value); + } +} diff --git a/src/Abstracts/TestBedFixture.cs b/src/Abstracts/TestBedFixture.cs index b1b46a2..22f64d9 100644 --- a/src/Abstracts/TestBedFixture.cs +++ b/src/Abstracts/TestBedFixture.cs @@ -23,8 +23,6 @@ protected TestBedFixture() { _services = new ServiceCollection(); ConfigurationBuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()); - AddUserSecrets(ConfigurationBuilder); - Configuration = GetConfigurationRoot(); _servicesAdded = false; } @@ -51,6 +49,8 @@ public ServiceProvider GetServiceProvider(ITestOutputHelper testOutputHelper) } if (!_servicesAdded) { + AddUserSecrets(ConfigurationBuilder); + Configuration = GetConfigurationRoot(); AddServices(_services, Configuration); _services.AddLogging(loggingBuilder => AddLoggingProvider(loggingBuilder, new OutputLoggerProvider(testOutputHelper))); _services.AddOptions();