Improves configuration and telemetry handling in tests
Adds null checks for telemetry and logging configurations Prevents registration of modules with empty configuration Updates test configuration file copy behavior Enhances robustness of test infrastructure by conditionally registering telemetry and logging modules only when valid configuration is present
This commit is contained in:
parent
5275a75502
commit
3aeae6315b
3 changed files with 96 additions and 91 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using Microsoft.ApplicationInsights;
|
using Microsoft.ApplicationInsights;
|
||||||
using Microsoft.ApplicationInsights.DataContracts;
|
using Microsoft.ApplicationInsights.DataContracts;
|
||||||
using SWP.Core.Database.ConnectionFactory;
|
using SWP.Core.Database.ConnectionFactory;
|
||||||
|
|
@ -10,10 +10,10 @@ public class SqlOperations : IDatabaseOperations
|
||||||
private readonly IDbConnectionFactory _connectionFactory;
|
private readonly IDbConnectionFactory _connectionFactory;
|
||||||
private readonly TelemetryClient _telemetryClient;
|
private readonly TelemetryClient _telemetryClient;
|
||||||
|
|
||||||
public SqlOperations(IDbConnectionFactory connectionFactory, TelemetryClient telemetryClient)
|
public SqlOperations(IDbConnectionFactory connectionFactory, TelemetryClient telemetryClient = null)
|
||||||
{
|
{
|
||||||
_connectionFactory = connectionFactory;
|
_connectionFactory = connectionFactory;
|
||||||
_telemetryClient = telemetryClient;
|
_telemetryClient = telemetryClient ?? new TelemetryClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
public DatabaseScope CreateScope(string operationName)
|
public DatabaseScope CreateScope(string operationName)
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="appconfiguration.dev.json">
|
<None Update="appconfiguration.dev.json">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="ConfigurationTests\appconfiguration.dev.json">
|
<None Update="ConfigurationTests\appconfiguration.dev.json">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using Autofac;
|
using Autofac;
|
||||||
using Microsoft.ApplicationInsights;
|
using Microsoft.ApplicationInsights;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
@ -58,10 +58,13 @@ public abstract class TestFixture
|
||||||
ConnectionString = configuration.GetConnectionString("DefaultConnection")
|
ConnectionString = configuration.GetConnectionString("DefaultConnection")
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(configuration.GetSection("ApplicationInsights").ToObject<TelemetryConfig>().ConnectionString))
|
||||||
builder.RegisterModule(new TelemetryModule
|
builder.RegisterModule(new TelemetryModule
|
||||||
{
|
{
|
||||||
TelemetryConfig = configuration.GetSection("ApplicationInsights").ToObject<TelemetryConfig>()
|
TelemetryConfig = configuration.GetSection("ApplicationInsights").ToObject<TelemetryConfig>()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(configuration.GetSection("SeqConfiguration").ToObject<SeqConfiguration>().IngestionEndpoint))
|
||||||
builder.RegisterModule(new SeqLoggingModule
|
builder.RegisterModule(new SeqLoggingModule
|
||||||
{
|
{
|
||||||
SeqConfiguration = configuration.GetSection("SeqConfiguration").ToObject<SeqConfiguration>()
|
SeqConfiguration = configuration.GetSection("SeqConfiguration").ToObject<SeqConfiguration>()
|
||||||
|
|
@ -76,9 +79,11 @@ public abstract class TestFixture
|
||||||
public void CleanUp()
|
public void CleanUp()
|
||||||
{
|
{
|
||||||
Trace.Flush();
|
Trace.Flush();
|
||||||
|
if (Container.IsRegistered<TelemetryClient>())
|
||||||
|
{
|
||||||
var telemetryClient = Container.Resolve<TelemetryClient>();
|
var telemetryClient = Container.Resolve<TelemetryClient>();
|
||||||
telemetryClient.Flush();
|
telemetryClient.Flush();
|
||||||
|
}
|
||||||
if (Container is null) return;
|
if (Container is null) return;
|
||||||
|
|
||||||
Container.Dispose();
|
Container.Dispose();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue