[ASP.NET Core] Clear logging for testing scenarios (#3810)
This commit is contained in:
parent
2fce583b9c
commit
b5e50b2878
|
|
@ -23,10 +23,12 @@ using System.Text.Json;
|
|||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc.Testing;
|
||||
using Microsoft.AspNetCore.TestHost;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using OpenTelemetry.Context.Propagation;
|
||||
using OpenTelemetry.Instrumentation.AspNetCore.Implementation;
|
||||
|
|
@ -57,8 +59,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
Assert.Throws<ArgumentNullException>(() => builder.AddAspNetCoreInstrumentation());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task StatusIsUnsetOn200Response()
|
||||
[Theory]
|
||||
[InlineData(true)]
|
||||
[InlineData(false)]
|
||||
public async Task StatusIsUnsetOn200Response(bool disableLogging)
|
||||
{
|
||||
var exportedItems = new List<Activity>();
|
||||
void ConfigureTestServices(IServiceCollection services)
|
||||
|
|
@ -72,7 +76,13 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
if (disableLogging)
|
||||
{
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
}
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
// Act
|
||||
|
|
@ -116,7 +126,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
// Act
|
||||
|
|
@ -150,12 +163,17 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var testFactory = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
{
|
||||
builder.ConfigureTestServices(services =>
|
||||
{
|
||||
this.tracerProvider = Sdk.CreateTracerProviderBuilder().AddAspNetCoreInstrumentation()
|
||||
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
|
||||
.AddAspNetCoreInstrumentation()
|
||||
.AddInMemoryExporter(exportedItems)
|
||||
.Build();
|
||||
})))
|
||||
});
|
||||
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
}))
|
||||
{
|
||||
using var client = testFactory.CreateClient();
|
||||
var request = new HttpRequestMessage(HttpMethod.Get, "/api/values/2");
|
||||
|
|
@ -203,14 +221,14 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var testFactory = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(services =>
|
||||
{
|
||||
Sdk.SetDefaultTextMapPropagator(propagator.Object);
|
||||
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
|
||||
.AddAspNetCoreInstrumentation()
|
||||
.AddInMemoryExporter(exportedItems)
|
||||
.Build();
|
||||
})))
|
||||
builder.ConfigureTestServices(services =>
|
||||
{
|
||||
Sdk.SetDefaultTextMapPropagator(propagator.Object);
|
||||
this.tracerProvider = Sdk.CreateTracerProviderBuilder().AddAspNetCoreInstrumentation().AddInMemoryExporter(exportedItems).Build();
|
||||
});
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
}))
|
||||
{
|
||||
using var client = testFactory.CreateClient();
|
||||
var response = await client.GetAsync("/api/values/2");
|
||||
|
|
@ -256,7 +274,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var testFactory = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices)))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
}))
|
||||
{
|
||||
using var client = testFactory.CreateClient();
|
||||
|
||||
|
|
@ -303,7 +324,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var testFactory = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices)))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
}))
|
||||
{
|
||||
using var client = testFactory.CreateClient();
|
||||
|
||||
|
|
@ -347,13 +371,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using var testFactory = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(services =>
|
||||
{
|
||||
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
|
||||
.SetSampler(new TestSampler(samplingDecision))
|
||||
.AddAspNetCoreInstrumentation()
|
||||
.Build();
|
||||
}));
|
||||
builder.ConfigureTestServices(services => { this.tracerProvider = Sdk.CreateTracerProviderBuilder().SetSampler(new TestSampler(samplingDecision)).AddAspNetCoreInstrumentation().Build(); });
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
});
|
||||
using var client = testFactory.CreateClient();
|
||||
|
||||
// Test TraceContext Propagation
|
||||
|
|
@ -404,6 +425,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
bool isFilterCalled = false;
|
||||
using var testFactory = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
{
|
||||
builder.ConfigureTestServices(services =>
|
||||
{
|
||||
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
|
||||
|
|
@ -416,7 +438,9 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
};
|
||||
})
|
||||
.Build();
|
||||
}));
|
||||
});
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
});
|
||||
using var client = testFactory.CreateClient();
|
||||
|
||||
// Test TraceContext Propagation
|
||||
|
|
@ -494,7 +518,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
using var request = new HttpRequestMessage(HttpMethod.Get, "/api/values");
|
||||
|
|
@ -549,7 +576,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient();
|
||||
|
||||
// Act
|
||||
|
|
@ -582,7 +612,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
var response = await client.GetAsync("/api/values/2");
|
||||
|
|
@ -618,13 +651,16 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
{
|
||||
builder.ConfigureTestServices((IServiceCollection services) =>
|
||||
{
|
||||
services.AddSingleton<ActivityMiddleware.ActivityMiddlewareImpl>(new TestNullHostActivityMiddlewareImpl(activitySourceName, activityName));
|
||||
services.AddOpenTelemetryTracing((builder) => builder.AddAspNetCoreInstrumentation()
|
||||
.AddSource(activitySourceName)
|
||||
.AddInMemoryExporter(exportedItems));
|
||||
}))
|
||||
});
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
var response = await client.GetAsync("/api/values/2");
|
||||
|
|
@ -671,7 +707,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
// Act
|
||||
|
|
@ -699,8 +738,12 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
|
||||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder => builder.ConfigureTestServices(
|
||||
(s) => this.ConfigureExceptionFilters(s, mode, ref exportedItems)))
|
||||
.WithWebHostBuilder(builder =>
|
||||
{
|
||||
builder.ConfigureTestServices(
|
||||
(s) => this.ConfigureExceptionFilters(s, mode, ref exportedItems));
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
// Act
|
||||
|
|
@ -745,7 +788,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
using var request = new HttpRequestMessage(HttpMethod.Get, "/api/values");
|
||||
|
|
@ -790,7 +836,10 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
builder.ConfigureTestServices(ConfigureTestServices))
|
||||
{
|
||||
builder.ConfigureTestServices(ConfigureTestServices);
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
try
|
||||
|
|
@ -836,6 +885,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
.Build();
|
||||
|
||||
var builder = WebApplication.CreateBuilder();
|
||||
builder.Logging.ClearProviders();
|
||||
var app = builder.Build();
|
||||
|
||||
app.UseExceptionHandler(handler =>
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ using System.Diagnostics;
|
|||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using OpenTelemetry.Trace;
|
||||
using Xunit;
|
||||
|
||||
|
|
@ -37,6 +38,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
{
|
||||
this.exportedItems = new List<Activity>();
|
||||
var builder = WebApplication.CreateBuilder();
|
||||
builder.Logging.ClearProviders();
|
||||
var app = builder.Build();
|
||||
|
||||
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
|
||||
|
|
|
|||
|
|
@ -19,11 +19,13 @@ using System.Collections.Generic;
|
|||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
using Microsoft.AspNetCore.Mvc.Testing;
|
||||
using Microsoft.AspNetCore.TestHost;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using OpenTelemetry.Trace;
|
||||
using TestApp.AspNetCore;
|
||||
using Xunit;
|
||||
|
|
@ -58,12 +60,15 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
// Arrange
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
{
|
||||
builder.ConfigureTestServices((IServiceCollection services) =>
|
||||
{
|
||||
services.AddSingleton<CallbackMiddleware.CallbackMiddlewareImpl>(new TestCallbackMiddlewareImpl(statusCode, reasonPhrase));
|
||||
services.AddOpenTelemetryTracing((builder) => builder.AddAspNetCoreInstrumentation(options => options.RecordException = recordException)
|
||||
.AddInMemoryExporter(exportedItems));
|
||||
}))
|
||||
});
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
try
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc.Testing;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using OpenTelemetry.Metrics;
|
||||
using OpenTelemetry.Trace;
|
||||
using Xunit;
|
||||
|
|
@ -53,7 +55,12 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
.AddInMemoryExporter(metricItems)
|
||||
.Build();
|
||||
|
||||
using (var client = this.factory.CreateClient())
|
||||
using (var client = this.factory
|
||||
.WithWebHostBuilder(builder =>
|
||||
{
|
||||
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
|
||||
})
|
||||
.CreateClient())
|
||||
{
|
||||
var response = await client.GetAsync("/api/values");
|
||||
response.EnsureSuccessStatusCode();
|
||||
|
|
|
|||
Loading…
Reference in New Issue