Add OTEL tracing support for Wiremock + automatic OTEL for Aspire integration (#1418)

* Update aspire to 13.1 (examples + code)

Allows usage of aspire CLI which is very useful for dev in codespaces (for my next PR).

* Add OTEL support

* Initial PR feedback

* PR feedback

* PR feedback

* PR feedback

* Cleanup.

* Cleanup

* Fix

* Fix

* Rename stuff around to be more accurate

* PR feedback

* Update WireMock.Net.OpenTelemetry.csproj

Update <Authors>

* PR feedback parser

* PR feedback package versions

* Status code feedback.

* Update preprocessor directives to to Activity Tracing instead of OpenTelemetry. Is more descriptive.

* Add tests

* Improve tests

---------

Co-authored-by: Stef Heyenrath <Stef.Heyenrath@gmail.com>
This commit is contained in:
Petr Houška
2026-01-18 17:22:36 +01:00
committed by GitHub
parent abe996671e
commit 4525c61847
38 changed files with 2057 additions and 9 deletions

View File

@@ -194,4 +194,41 @@ public class WireMockServerSettingsTests
var options = server.GetPrivateFieldValue<IWireMockMiddlewareOptions>("_options");
Check.That(options.RequestLogExpirationDuration).IsEqualTo(1);
}
#if NET6_0_OR_GREATER
[Fact]
public void WireMockServer_WireMockServerSettings_ActivityTracingOptions_AreMappedToMiddlewareOptions()
{
// Assign and Act
var server = WireMockServer.Start(new WireMockServerSettings
{
ActivityTracingOptions = new ActivityTracingOptions
{
ExcludeAdminRequests = false,
RecordRequestBody = true,
RecordResponseBody = true,
RecordMatchDetails = false
}
});
// Assert
var options = server.GetPrivateFieldValue<IWireMockMiddlewareOptions>("_options");
options.ActivityTracingOptions.Should().NotBeNull();
options.ActivityTracingOptions!.ExcludeAdminRequests.Should().BeFalse();
options.ActivityTracingOptions.RecordRequestBody.Should().BeTrue();
options.ActivityTracingOptions.RecordResponseBody.Should().BeTrue();
options.ActivityTracingOptions.RecordMatchDetails.Should().BeFalse();
}
[Fact]
public void WireMockServer_WireMockServerSettings_Without_ActivityTracingOptions_ShouldNotSetMiddlewareOptions()
{
// Assign and Act
var server = WireMockServer.Start(new WireMockServerSettings());
// Assert
var options = server.GetPrivateFieldValue<IWireMockMiddlewareOptions>("_options");
options.ActivityTracingOptions.Should().BeNull();
}
#endif
}