Class OpenTelemetryExtension

java.lang.Object
io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension
All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension

public final class OpenTelemetryExtension extends Object implements org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback
A JUnit5 extension which sets up the OpenTelemetrySdk for testing, resetting state between tests.

 // class CoolTest {
 //   @RegisterExtension
 //   static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
 //
 //   private final Tracer tracer = otelTesting.getOpenTelemetry().getTracer("test");
 //
 //   @Test
 //   void test() {
 //     tracer.spanBuilder("name").startSpan().end();
 //     assertThat(otelTesting.getSpans()).containsExactly(expected);
 //   }
 //  }
 
  • Method Details

    • create

      public static OpenTelemetryExtension create()
      Returns a OpenTelemetryExtension with a default SDK initialized with an in-memory span exporter and W3C trace context propagation.
    • getOpenTelemetry

      public io.opentelemetry.api.OpenTelemetry getOpenTelemetry()
      Returns the OpenTelemetrySdk created by this extension.
    • getSpans

      public List<io.opentelemetry.sdk.trace.data.SpanData> getSpans()
      Returns all the exported SpanData so far.
    • assertTraces

      public TracesAssert assertTraces()
      Returns a TracesAssert for asserting on the currently exported traces. This method requires AssertJ to be on the classpath.
    • clearSpans

      public void clearSpans()
      Clears the collected exported SpanData. Consider making your test smaller instead of manually clearing state using this method.
    • beforeEach

      public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
    • beforeAll

      public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
    • afterAll

      public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback